распаковать несколько файлов

14

Я не думаю, что я единственный, кто столкнулся с этой проблемой, но, к сожалению, я не смог найти правильный ответ между ранее заданными вопросами.

Это очень распространенная процедура на торрент-сайтах, где контент разделен на множество небольших архивов. Иногда эти небольшие проиндексированные zip-архивы содержат внутри себя другой rar-архив.

Итак, мой вопрос: как вы справитесь с этой проблемой? Как вам рекурсивно распаковать эти файлы?

RDA
источник
2
Не могли бы вы привести пример?
ztik
Вы ищете руководство или полностью автоматизированное решение?
Дэвид Фёрстер
просто примечание, обычно, когда вы обнаруживаете, что такие жалобы о нелегальном программном обеспечении / фильмах, и вы никогда не доберетесь до конца этих файлов .rar / .zip, потому что это подделка.
Джегги

Ответы:

20

Для этого просто нажмите Ctrl+ Alt+ Tна клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:

unzip '*.zip'

Также вы можете щелкнуть правой кнопкой мыши по первому файлу в группе и выбрать Извлечь здесь, и это будет также все файлы в этой группе.

Митч
источник
Согласно инструкции unzip не поддерживает разделение архивов (см. Первый абзац в разделе «Ошибки»).
Дэвид Фёрстер
@DavidFoerster только что проверил это, и оно работает.
Митч
Хорошо, тогда руководство кажется неправильным. Хороший улов.
Дэвид Фёрстер
@mitch в моем случае не работает, это говорит об «ошибке при загрузке zip-файла», но в windows тот же каталог на том же диске распаковывается с winrar, может быть, вы пытались разархивировать несколько, но> отдельный <zip-файл одновременно? это другое дело, хотя.
Папайо,
2

Чтобы разархивировать несколько файлов с помощью цикла -

for z in *.zip; do unzip "$z"; done
Рохит Мадхаван
источник
@DavidFoerster Два метода по сути одинаковы. *.zipпредоставляет все возможные файлы, заканчивающиеся расширением zip, которое цикл распаковывает один за другим. Именно поэтому @Mitch включил в свой ответ одинарные кавычки '*.zip', чтобы оболочка не распознала его как символ подстановки .
Рохит Мадхаван
1
На самом деле это лучший способ, так как вы можете указать список имен файлов вместо «все файлы в каталоге». То есть вы хотите извлекать определенный список zip-файлов один за другим по порядку, вы можете сделать это "для z в XYZTG; выполните unzip -o" $ z.zip "; done", и он сделает это в таком порядке. Это лучший ответ imho.
Джон Гамильтон
0

CTRL+ ALT+ Tоткрыть терминал

for f in $(ls | egrep zip); do
  unzip $f -vd UnzippedDirectory
done

Это в основном перебирает все почтовые индексы, которые вы получили в текущем каталоге, и разархивирует каждый из них многословно (отсюда и -vфлаг) в каталог ( -dфлаг)

Даниэль Андрей Минкэ
источник