2

Я пытаюсь удалить файлы с определенными расширениями из нескольких ZIP-архивов.

Например, я хочу удалить все файлы .html, содержащиеся в zip-архивах по текущему пути, поэтому я попробовал это:zip -d *.zip '*.html'

Это работает для первого найденного почтового индекса, но не продолжается дальше. Любые предложения, как это сделать на OSX?

1 ответ1

3

Проблема в том, что *.zip расширится до всех ZIP-файлов, прежде чем он будет передан команде zip .

Сделайте это вместо этого с помощью простого цикла:

for f in *.zip; do zip -d "$f" '*.html'; done

Если у вас есть Zsh, этот цикл немного короче:

for f (*.zip) zip -d "$f" '*.html'

Если вы хотите перейти в подпапки со стандартными инструментами OS X, используйте find:

find /path/to/files -type f -name '*.zip' -exec zip -d {} '*.html' \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .