- Распаковать вложенные архивы linux
- unixforum.org
- Распаковать множество архивов *.tar.gz (В папке больше 30 архивов. как все одним махом распаковать?)
- Распаковать множество архивов *.tar.gz
- Re: Распаковать множество архивов *.tar.gz
- Re: Распаковать множество архивов *.tar.gz
- Re: Распаковать множество архивов *.tar.gz
- Re: Распаковать множество архивов *.tar.gz
- Re: Распаковать множество архивов *.tar.gz
- Re: Распаковать множество архивов *.tar.gz
- Re: Распаковать множество архивов *.tar.gz
- Re: Распаковать множество архивов *.tar.gz
- Одновременное разархивирование нескольких файлов в Linux
- Распаковка нескольких ZIP файлов одновременно
- Одновременное извлечение нескольких файлов tar.xz
- Разархивирование нескольких RAR файлов одновременно
- Одновременная распаковка нескольких файлов 7z
- Похожие записи:
Распаковать вложенные архивы linux
Краткая памятка по работе с архиваторами (программами управления файловыми архивами) из консоли в Linux.
- В двух словах о самом формате tar
http://ru.wikipedia.org/wiki/Tar писал(а): . в настоящее время tar используется для хранения нескольких файлов внутри одного файла, для распространения программного обеспечения, а также по прямому назначению — для создания архива файловой системы.
где foo.tar имя которое будет присвоено полученному архиву, а «./» указание папки
А для распаковки этого архива будем использовать
-A, —catenate, —concatenate
склеить файлы tar в один архив
-c, —create
создать новый архив
-d, —diff, —compare
найти различия между архивом и файловой системой
—delete
удалить из архива (не применяется к магнитным лентам!)
-r, —append
добавить файлы в конец архива
-t, —list
показать содержимое архива
-u, —update
добавить только новые версии файлов файлов
-x, —extract, —get
извлечь файлы из архива
-j, —bzip2
используется для создания/распаковки .bz2 файлов
-z, —gzip, —ungzip
используется для создания/распаковки .gz файлов
-M, —multi-volume
создать/показать/распаковать многотомный архив
Другие не менее интересные опции этой очень важной команды можно найти в руководстве пользователя — man tar.
tar -czvf - --exclude=www/test --exclude='*.zip' /var/www/ | split -b 1024m - ./backup.tar.gz
(«-» после -czvf говорит tar’у выводить в stdout, чтобы потом split мог его разбить на части(а «-» в split говорит ему брать из stdin)) В результате будут созданы файлы backup.tar.gzaa, backup.tar.gzab, backup.tar.gzac . размер каждого 1024 Мб. Именно последние две буквы в названии архива .tar.gzaa, .tar.gzab и т.д., указывают на то, что он разбит на части.
Склеить все части можно командой
cat часть1 часть2 часть3 > архив.tar.gz
cat backup.tar.gzaa backup.tar.gzab backup.tar.gzac > backup.tar.gz
cat backup.tar.* > backup.tar.gz
в результате будут созданы файлы arch.7z.001 arch.7z.002 arch.7z.003 . размер каждого 100 Мб (опция -v100m).
Чтобы распаковать многотомный архив arch.7z.001, достаточно поместить все части архива в текущую папку и дать команду
unrar e -p"Пароль" archive.rar
между вашим паролем и ключем -p не должно быть пробелов, в кавычки надо брать если в пароле используется например дефис или другой системный символ
создание и распаковка архива с паролем через 7zip
7za a -mhe=on -ms=on -p Documents.7z Documents/
unixforum.org
Распаковать множество архивов *.tar.gz (В папке больше 30 архивов. как все одним махом распаковать?)
Распаковать множество архивов *.tar.gz
Сообщение Stasroot1 » 04.01.2010 11:38
Скачал из инета кучу архивов. все лежат в одной папке. Надо распаковать все архивы одним махом в эту же папку, так чтобы: были архивы 1. 2. . 30 а стали архивы 1. 2. . 30 вместе с распакованными архивами разложенными по соответствующим папкам: папки: 1. 2. . 30.
Через графическую болочку такого сделать не получается, максимум что получается это распаковать два архива одним махом. Наверняка моя проблема решаема. Прошу подсказать.
Система SUSE11.2 КДЕ4,3,1
diesel Бывший модератор Сообщения: 5989 ОС: OS X, openSuSE, ROSA, Debian Контактная информация:
Re: Распаковать множество архивов *.tar.gz
Сообщение diesel » 04.01.2010 12:15
Re: Распаковать множество архивов *.tar.gz
Сообщение Stasroot1 » 04.01.2010 14:20
много буков — пугает малость. Это набор команд? Команда? Что то обобщенное но не совсем понятное. скорее всего правильнее будет man tar. 🙁
Minton Сообщения: 1588 Статус: openSUSE Localization Team ОС: openSUSE Tumbleweed x86-64
Re: Распаковать множество архивов *.tar.gz
Сообщение Minton » 04.01.2010 16:00
ls | #вывести список файлов
while read i; do #берём файлы по одному
mkdir $; #создаём каталог, одноимённый архиву
tar xzf $i -C $; #распаковываем данный архив
mv $i $; #перемещаем распакованное в каталог
done #всё 🙂
«Настоящие мужчины используют поиск» ©Goodvin
Re: Распаковать множество архивов *.tar.gz
Сообщение Makinos » 04.01.2010 18:42
«многабукафф ниасилил»
жесть.
diesel Бывший модератор Сообщения: 5989 ОС: OS X, openSuSE, ROSA, Debian Контактная информация:
Re: Распаковать множество архивов *.tar.gz
Сообщение diesel » 04.01.2010 23:15
ls | #вывести список файлов
while read i; do #берём файлы по одному
mkdir $; #создаём каталог, одноимённый архиву не совсем. создаем каталог такой же как архив, только без .tar.gz, если например архив был archive.tar.gz, то получим каталог archive
tar xzf $i -C $; #распаковываем данный архив в только что созданный каталог
mv $i $; #перемещаем распакованное архив в каталог
done #всё
чтобы посмотреть что происходит на самом деле, вы можете пред каждой командой в цикле поставить echo:
ls | while read i; do echo mkdir $; echo tar xzf $i -C $; echo mv $i $; done
(потом, если команды делают то что требуется, и в именах архивов нет пробелов, просто можно сделать pipe в shell:
ls | while read i; do echo mkdir $; echo tar xzf $i -C $; echo mv $i $; done | sh
Minton Сообщения: 1588 Статус: openSUSE Localization Team ОС: openSUSE Tumbleweed x86-64
Re: Распаковать множество архивов *.tar.gz
Сообщение Minton » 05.01.2010 00:12
«Настоящие мужчины используют поиск» ©Goodvin
Re: Распаковать множество архивов *.tar.gz
Сообщение Stasroot1 » 05.01.2010 09:05
«многабукафф ниасилил»
жесть.
Придираешся к Русскому языку в моем исполнении. Нет чтобы по делу написать что нибудь. а про то что много буковок, ну так как было так и написал.
Остальным спасибо за разъяснения!
ls | while read i; do echo mkdir $; echo tar xzf $i -C $; echo mv $i $; done | sh
делает практически почти так как нужно. Было в папке: «архив.tar.gz»
Стало в папке «папка «архив»» а в папке «папка «архив»» лежит сам «архив.tar.gz» простите за каламбур. а надо чтобы стало так:
НАДО: в папке: файл: «архив.tar.gz» и папка: «папка «архив»».
Хотя и тот вариант что вы мне уже разжевали тоже очень даже не плох! И самое главное выполняется на кучу порядков быстрее чем если все ручками разархивировать по одному/два через графический интерфейс! Еще рас спасибо! И. может это в общий FAQ? Я так понимаю универсальная для всех Линуксов команда.
SLEDopit Модератор Сообщения: 4814 Статус: фанат консоли (= ОС: GNU/Debian, RHEL
Re: Распаковать множество архивов *.tar.gz
Сообщение SLEDopit » 05.01.2010 11:30
слишком специфический вопрос. я сколько пользуюсь компьютером, мне такая конструкция ни разу не пригодилась.
и после нелубокого изучения bash scripting’a такая строка пишется за полминуты.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don’t do mistakes, the more bugs are in your code.
Одновременное разархивирование нескольких файлов в Linux
Иногда нужно разархивировать сразу несколько файлов в формате zip и rar, находящихся в одной папке. В пользовательском интерфейсе Ubuntu это довольно просто: нужно просто выбрать все файлы, которые вы хотите разархивировать, щелкнуть на них правой кнопкой мыши и использовать опцию Extract, чтобы разархивировать их все. Все становится действительно сложнее, когда мы хотим выполнить ту же задачу из командной строки. Это может оказаться довольно утомительным и нелогичным — извлекать файлы один за другим, набирая команды для извлечения одного за другим. Вот здесь-то и пригодится цикл for в Bash. Он позволяет выполнять несколько одинаковых операций одновременно.
В этой статье описывается, как использовать цикл for для извлечения нескольких файлов следующего типа с помощью командной строки Ubuntu:
Распаковка нескольких ZIP файлов одновременно
Предположим, что папка, в нашем случае папка «zip_files», содержит несколько заархивированных файлов, и мы хотим извлечь их одновременно.
Вот как можно использовать цикл for, чтобы упростить задачу:
for z in *.zip do unzip $z; done
Вот как можно выполнить ту же задачу с помощью одной единственной команды:
for z in *.zip; do unzip "$z"; done
Одновременное извлечение нескольких файлов tar.xz
Предположим, что папка содержит несколько файлов tar.xz, и мы хотим извлечь их одновременно.
Вот как можно использовать цикл for, чтобы упростить задачу:
for z in *.tar.xz do tar -xf $z; done
А вот как можно выполнить ту же задачу с помощью одной команды:
for z in *.tar.xz; do tar -xf "$z"; done
Разархивирование нескольких RAR файлов одновременно
Используйте следующую команду, чтобы разархивировать несколько файлов rar одновременно.
for z in *.rar do unrar e $z; done
for f in *.rar; do unrar e "$f"; done
Одновременная распаковка нескольких файлов 7z
Используйте следующую команду для одновременного извлечения нескольких файлов 7z.
for z in *.7z do 7z e $z; done
for z in *.7z; do 7z e "$z"; done
Используя цикл Bash for, вы можете легко выполнить задачу по распаковке нескольких сжатых файлов одновременно. Этот небольшой навык, которому вы научились в этой статье, особенно удобен, когда нам нужно распаковать сотни сжатых файлов одновременно. Вы можете использовать цикл for не только для распаковки файлов, но и для других подобных задач, которые занимают больше времени, если выполнять их по одному.