Рекурсивно сжимайте файлы в каталоге и подкаталогах с помощью инструмента командной строки «zip» в Mac OS X и исключайте файлы .DS_Store из ВСЕХ подпапок

10283
OMA

Я пытаюсь создать ZIP-файл с помощью zipинструмента командной строки, который поставляется с Mac OS X Terminal. Я хочу рекурсивно сжимать содержимое текущей папки, но исключая .DS_Storeфайлы. Я пытаюсь с этим:

zip -r myarchive.zip . -x .DS_Store 

В -x .DS_StoreИсключая .DS_Storeфайл в текущей папке, но не в рекурсивно добавляются вложенные папки. Как мне исключить все .DS_Storeфайлы из ВСЕХ подпапок?

7

1 ответ на вопрос

9
fd0

Add a wildcard to the exclude option

zip -r myarchive.zip . -x "*.DS_Store" 
Спасибо за Ваш ответ. Это работает, но почему? :). Не могли бы вы объяснить? OMA 9 лет назад 0
`*` Расширяется до нуля или любой части пути, поскольку zip рекурсивно сжимает файлы и их каталоги. Итак, `./. DS_Store`, затем` ./*/. DS_Store` и т. Д. Исключаются из архива. fd0 9 лет назад 0
Ах, интересно. Таким образом, подстановочный знак работает иначе, чем в мире Windows, где «* .DS_Store» будет означать «любой файл, заканчивающийся на .DS_Store» OMA 9 лет назад 0