Как рекурсивно сжать подпапки?

Несколько часов билась головой об стену...

пытаясь рекурсивно сжать подпапки, но только файлы в них. Я пытался изменить этот скрипт:

for i in */*/; do zip -j -r "${i%/}.zip" "$i" ; done

Это почти идеально, но у заархивированных файлов все еще есть фактическая подпапка с файлами в этом. Ожидаемый результат будет иметь только файлы в zip-файле, а не подпапку, содержащую файлы.

Любая помощь приветствуется. Спасибо

1 ответ

В руководстве по zip уже есть что-то лучшее, что использует find

man zip

Модифицируя это немного становится

find . -type f -exec zip source {} \;

Вы можете использовать его после cd в нужную папку, или вы можете заменить . с этим, как

find ~/Downloads/ -type f -exec zip source {} \;
Другие вопросы по тегам