У меня есть десятки папок, которые мне нужно сжать в отдельные zip-файлы.
Если я выбираю все эти папки в Finder и выполняю «Сжатие [X] элементов», я получаю один zip-файл, содержащий все папки, тогда как мне нужен один zip-файл на папку.
Я попытался создать рабочий процесс с помощью Automator с помощью действия «Создать архив», но он ведет себя одинаково: при вводе нескольких файлов / папок выводится один zip-файл. Нет способа указать, что действие выполняется для каждого элемента в отдельности.
По сути, я ищу способ избежать необходимости утомительного запуска «Compress» в Finder для каждой папки по одной. Есть ли способ автоматизировать это?
popd
и исправил фатальную опечаткуfor i in $bn*.zip; do
, которая должна была бытьfor i in $bn *.zip; do
. Обратите внимание на пространство между$bn
и*.zip
, оно отсутствовало и не должно было быть. Поэтому, пожалуйста, обновите его в своей реализации, в противном случае он вступит в действие,File Name 2.zip
когда вbasename
нем будет пробел.Ответы:
Вот Automator служба 1 , которая становится доступной в Finder , если папки выбраны и эмулирует в контекстно-меню Сжать [п] Элементы команды за исключением того, что создает отдельный файл зип архива для каждой выбранной папки в имени выбранной папки . Если файл имени папки.zip уже существует, к имени файла добавляется
" 2"
( пробел 2) , например, имя папки 2.zip . Это гарантирует существующий файл архива zipне затрагивается, и имя файла zip-архива будет автоматически увеличиваться по мере необходимости.1 В macOS Mojave и более поздних версиях служба Automator называется Quick Action . Есть и другие незначительные различия в номенклатуре, но они должны быть более очевидными при сравнении их с рабочими процессами Mojave Automator до MacOS.
Чтобы создать сервис: 1
Откройте Automator и выберите « Сервис 1» или « Файл» > « Создать» > « Сервис», если Automator уже открыт.
Набор услуги принимают выбранные для папок и в к Finder .
Добавление сценария Run Shell Action , установка Shell: в / бен / Баш и ввода Pass: в качестве аргументов и добавьте следующий код :
Сохранить службу как: отдельно сжимать папки
Чтобы воспользоваться услугой:
В Finder или на рабочем столе выберите несколько папок , затем щелкните правой кнопкой мыши и выберите « Сжать папки отдельно» в разделе « Службы» .
Или после выбора целевых папок вы также можете щелкнуть Finder > Services > Compress Folders отдельно от строки меню .
Вот вам и способ сжать несколько папок по отдельности и одновременно в отдельных zip-архивах, эмулируя, как Finder создает файл zip-архива. Значение архива почтового индекса содержит сохраненные вилки ресурсов и HFS мету-данные в подкаталоге __MACOSX и встраивает только имя родительского каталога источник в целевом архиве , а не полное имя путь , как при использовании
zip
(без-j
) , чтобы создать архив.Изображение папок сжатия отдельно
источник
Есть альтернативное решение, которое встроено, если вы не хотите использовать Automator и можете изменить настройки утилиты архивирования.
источник
/System/Library/CoreServices/Applications/
(вы можете нажать Cmd-Shift-G, когда открыто диалоговое окно выбора файла, чтобы вставить этот путь для быстрой навигации)