У меня много 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 \;, он распакует все файлы и поместит их в соответствующую родительскую папку.
Просто используйте
unzip '*.zip' -d /home/user/folder/
Я сам искал это, только чтобы понять, что я уже делал это с помощью других команд, и его можно было применить практически ко всему, что я уже делал.
Найти метод сумасшедший сложнее без причины.
for i in *.zip; do unzip "$i" -d "${i%%.zip}"; done
Мне также нужно было сделать это, используя unrar. Это может быть достигнуто незначительной модификацией кода kencinder.
for i in *.rar; do mkdir "${i%%.rar}"; unrar x -r "$i" "${i%%.rar}"; done
PS: Я хотел добавить это как комментарий, но у меня недостаточно очков репутации!