Как исключить файлы из Zip-архива
Оглавление:
Самый простой способ исключить множество конкретных файлов или группу совпавших файлов из zip-архива — это пропустить утилиту простого архивирования, встроенную в удобный интерфейс Mac OS X, и перейти к командной строке, где находится мощная команда zip. Это полезно по миллиону и одной причине, но основной мотив для этого сообщения относится к файлам .DS_Store, которые поставляются в комплекте с zip-архивами, созданными на Mac, только для того, чтобы загромождать другую машину, которая распаковывает файл, независимо от того, находится ли он на другом Mac, ПК с Windows или Linux.Это происходит как с дружественным инструментом zip, так и с утилитой zip командной строки по умолчанию, и это потому, что поведение инструментов zip по умолчанию заключается в том, чтобы включать скрытые файлы независимо от того, отображаются они или нет. Это не обязательно плохо, и во многих случаях это будет сочтено полезным, но если вы не хотите, чтобы они или любой другой файл в этом отношении появлялись в ваших архивах, тогда читайте дальше.
Как исключить файлы из Zip-архива
Основные принципы исключения файлов при создании zip-архива основаны на флаге -x, который используется для исключения из архива файлов, соответствующих определенному имени или шаблону. В самом общем виде это будет выглядеть так:
"zip архив.zip файлы -x ExcludeMe"
Это означает, что вы можете исключить один файл, скажем, с именем «Nothanks.jpg»
"zip archive.zip images/ -x Nothanks.jpg"
Давайте рассмотрим несколько конкретных примеров, когда это полезно.
Исключить файлы .DS_Store из Zip-архивов
Это предотвратит включение обычно невидимых файлов метаданных Mac .DS_Store в zip-архив, который по умолчанию входит в состав:
"zip -r имя_архива.zip каталог_архива -x .DS_Store"
Если каталог включает в себя подкаталоги, вы можете использовать другой вариант этой команды, чтобы также исключить файлы ds_store из подкаталогов:
"zip -r каталог archive.zip -x /\.DS_Store"
Примечание: не во всех оболочках для правильной работы этой команды требуются кавычки, но в оболочке bash (по умолчанию для Mac OS X) вам нужно будет использовать кавычки для исключения подстановочных знаков и шаблонов.
Исключение определенных типов файлов из Zip-архива
С помощью подстановочных знаков вы также можете исключить все файлы определенного типа, сосредоточившись на расширении. Например, эта команда заархивирует весь каталог без файлов .jpg:
"zip -r каталог archive.zip -x .jpg"
Это может быть изменено для любого конкретного расширения файла или шаблона, совпадающего в имени файла.
Исключить каталог .git или .svn из Zip-архива
"Заархивируйте каталог без .git и его содержимого: zip -r zipdir.zip directorytozip -x .git "
Заархивируйте папку, не включая каталог .svn: zip -r каталог zip.zip -x .svn "
Исключить все скрытые файлы из Zip-архива
Поскольку можно использовать шаблоны и подстановочные знаки, вы также можете исключить любые или все невидимые файлы и папки, созданные так, указав точку в префиксе, будь то каталог, например .svn, или отдельный файл, например .bash_profile или .htaccess.
zip -r имя_архива.zip каталог в zip -x ."
Или исключить все невидимые файлы из всех подкаталогов:
"zip -r каталог archive.zip -x /\."
Приветствую комментатора на форумах Macworld за точный синтаксис исключения этих файлов из подкаталогов.
В конечном счете, это еще одна причина для опытных пользователей переходить к Терминалу для создания архивов. Благодаря мощным функциям, таким как поддержка подстановочных знаков, исключение и дополнительная защита почтовых индексов паролем, он просто более полнофункциональный, и, поскольку все это включено в Mac, вам не нужно загружать другое приложение для поддержки расширенных функций.
И да, технически, если вы решили остаться в пользовательском интерфейсе, вы можете использовать операторы поиска Finder и Spotlight, чтобы сузить содержимое папок в Mac OS X перед созданием архива, или просто выбрать все и вручную Command+Щелкните по каждому файлу, чтобы не включать его, но это действительно неэффективно для больших операций архивирования.Таким образом, терминал выигрывает за простоту, и, несмотря на то, что он сосредоточен вокруг командной строки, он действительно не сложен, как только вы изучите основы.