Я до сих пор понял, как использовать find для рекурсивного распаковывания всех файлов:
find . -depth -name `*.zip` -exec /usr/bin/unzip -n {} \;
Но я не могу понять, как удалить zip-файлы по одному после извлечения. Добавление rm *.zip в -a -exec приводит к удалению большинства zip-файлов в каждом каталоге до их извлечения. Прохождение через сценарий, содержащий команду rm (с включенным -i для тестирования), приводит к тому, что find не находит никаких *.zip-файлов (или, по крайней мере, это то, на что он жалуется). Конечно, во многих именах файлов есть пробелы, но на данный момент синтаксис в команде sed для добавления _ немного выше моего понимания. Спасибо за помощь!
recursively
, молния в молнию? Для сложных задач лично я написал бы вспомогательный скрипт (скажем,unzip-and-rm.sh
) и -exec этот скрипт. - person Xiè Jìléi   schedule 08.04.2011unzip-and-rm
к сценарию и -exec его, но он не смог найти какие-либо zip-файлы, и я подозреваю, что это связано с пробелами в именах файлов. - person Ben   schedule 08.04.2011it fails to find any zip files
, я не могу в это поверить, не могли бы вы вставить командную строку? - person Xiè Jìléi   schedule 08.04.2011rm $f
,mv $f
или добавить любую другую команду, если хотите. - person sflr   schedule 14.08.2018