распакуйте кілька файлів


14

Я не думаю, що я єдиний з цією проблемою, але, на жаль, мені не вдалося знайти належної відповіді між раніше заданими питаннями.

Це дуже поширена процедура на торент-сайтах, де вміст розбито у багатьох невеликих архівах. Іноді ці невеликі поштові архіви з індексованим розміщенням містять все ще рідкісні архіви.

Отже, моє запитання: як вам впоратися з цією проблемою? Як ви рекурсивно розпаковувати ці файли?


2
Чи можете ви навести приклад?
ztik

Шукаєте інструкцію чи повністю автоматизоване рішення?
Девід Фоерстер

просто зауваження, як правило, коли ви знайдете такий тип торрентів про незаконне програмне забезпечення / фільми, і ви ніколи насправді не дістанете до кінця цих файлів .rar / .zip, тому що це підробка.
Джеггі

Відповіді:


20

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

unzip '*.zip'

Також ви можете натиснути правою кнопкою миші на перший файл у групі та вибрати тут Витягнути, і це також буде всі файли цієї групи.


Відповідно до посібника unzip не підтримуються розділені архіви (див. Перший абзац у розділі "Помилки").
Девід Фоерстер

@DavidFoerster лише тестував це, і він працює.
Мітч

Гаразд, тоді посібник видається неправильним. Хороший улов.
Девід Фоерстер

@mitch, в моєму випадку це не працює, він пише "помилка під час завантаження zip-файлу", але у Windows той самий каталог на одному диску розпаковується з winrar, можливо, ви намагалися одноразово розпакувати, але> розділити <zip-файл одночасно? це інша річ, хоча.
papajo

2

Щоб розпакувати кілька файлів за допомогою циклу -

for z in *.zip; do unzip "$z"; done

@DavidFoerster Два методи по суті однакові. *.zipнадає всі можливі файли, що закінчуються розширенням zip, яке цикл розпаковує один за одним. Ось чому @Mitch включив у свою відповідь одинарні лапки '*.zip', щоб оболонка не розпізнала його як символ підказки.
Рохіт Мадхаван

1
Це насправді кращий метод, оскільки ви можете вказати список імен файлів замість того, щоб вимовляти "всі файли в каталозі". IE ви хочете витягнути певний список поштових файлів один за одним для того, щоб ви могли зробити це "для z в XYZTG; зробіть unzip -o" $ z.zip "; done", і це зробить це в тому порядку. Це краща відповідь імхо.
Джон Гамільтон

0

CTRL+ ALT+, Tщоб відкрити термінал

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

Це, в основному, перебирає всі зіпси, які ви отримали у вашому поточному каталозі, і розпаковує кожен з них багатослівно (звідси і -vпрапор) у каталог ( -dпрапор)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.