Прежде всего, если у вас не установлен zip, сначала установите его следующим образом:
Основы исключения файлов при создании zip-архива сосредоточены вокруг -x
флаг, который используется для исключения из архива файлов, соответствующих определенному имени или шаблону. В самом общем виде это будет выглядеть так:
zip archive.zip files -x "ExcludeMe"
Это означает, что вы можете исключить один файл, скажем, с именем “Nothanks.jpg ”
zip archive.zip images/ -x "Nothanks.jpg"
Давайте рассмотрим несколько конкретных примеров, где это полезно.
Исключать.Файлы DS_Store из Zip-архивов
Это предотвратит обычно невидимые метаданные Mac .DS_Store
файлы, включенные в zip-архив, которые по умолчанию включены в пакет:
zip -r archivename.zip archivedirectory -x "*.DS_Store"
Однако, если каталог содержит подкаталоги, вы захотите использовать другой вариант этой команды, чтобы также исключить файлы ds_store из подкаталогов:
zip -r archive.zip directory -x "*/\.DS_Store"
Примечание: не все оболочки требуют кавычек для правильной работы этой команды, но в оболочке bash (по умолчанию для OS X) вам нужно будет использовать кавычки для исключения с помощью подстановочных знаков и шаблонов.
Исключить определенные типы файлов из Zip-архива
С помощью подстановочных знаков вы также можете исключить все файлы определенного типа, сосредоточив внимание на расширении. Например, эта команда заархивирует весь каталог за вычетом любых .jpg
файлы:
zip -r archive.zip directory -x "*.jpg"
Это может быть изменено для любого конкретного расширения файла или шаблона, соответствующего имени файла.
Исключить каталог .git или .svn из Zip-архива
Zip-архив каталога, минус .git
и это содержание:
zip -r zipdir.zip directorytozip -x "*.git*"
Заархивируйте папку, не включая .svn
каталог:
zip -r zipped.zip directory -x "*.svn*"
Исключить все скрытые файлы из Zip-архива
Поскольку можно использовать шаблоны и подстановочные знаки, вы также можете исключить любые или все невидимые файлы и папки, которые сделаны таковыми с помощью префикса точки, будь то каталог типа .svn
или отдельный файл, такой как .bash_profile
или .htaccess
.
zip -r archivename.zip directorytozip -x "*.*"
Или исключить все невидимые файлы из всех подкаталогов:
zip -r archive.zip directory -x "*/\.*"