Извлеките несколько ZIP-файлов, каждый в новой папке с тем же именем, через терминал Ubuntu

У меня много zip-файлов a.zip, b.zip, c.zip, ... и я хочу извлечь каждый из них в новые папки a, b, c, ... через терминал.

На самом деле, я хочу, это решение, которое я могу использовать позже с find, потому что на самом деле у меня много папок a.zip, b.zip, c.zip, ... [ ! d1], каждый из которых содержит много zip-файлов a.zip, b.zip и т. д. Если я сделаю find . -name "*.zip" -exec {} unzip \;, он распакует все файлы и поместит их в соответствующую родительскую папку.

1
задан 16 August 2016 в 02:27

3 ответа

Просто используйте

unzip '*.zip' -d /home/user/folder/
5
ответ дан 24 May 2018 в 04:08
  • 1
    Если я что-то не упустил, это распакует все в папку / home / user / folder, not в / home / user / folder / a и / home / user / folder / b – M. Justin 27 March 2017 в 22:59

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

Найти метод сумасшедший сложнее без причины.

for i in *.zip; do unzip "$i" -d "${i%%.zip}"; done
5
ответ дан 24 May 2018 в 04:08

Мне также нужно было сделать это, используя unrar. Это может быть достигнуто незначительной модификацией кода kencinder.

for i in *.rar; do mkdir "${i%%.rar}"; unrar x -r "$i" "${i%%.rar}"; done 

PS: Я хотел добавить это как комментарий, но у меня недостаточно очков репутации!

0
ответ дан 24 May 2018 в 04:08

Другие вопросы по тегам:

Похожие вопросы: