Вот 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: в качестве аргументов и добавьте следующий код :
for f in "$@"; do
dn="$(dirname "$f")"
bn="$(basename "$f")"
cd "$dn" || exit
if [[ ! -e "$bn.zip" ]]; then
ditto -c -k --sequesterRsrc --keepParent "$f" "$bn.zip"
else
n=2
for i in $bn *.zip; do
if [[ "$bn $n.zip" == "$i" ]]; then
n="$(( n + 1 ))"
fi
done
ditto -c -k --sequesterRsrc --keepParent "$f" "$bn $n.zip"
fi
done
afplay /System/Library/Sounds/Purr.aiff
Сохранить службу как: отдельно сжимать папки
Чтобы воспользоваться услугой:
В Finder или на рабочем столе выберите несколько папок , затем щелкните правой кнопкой мыши и выберите « Сжать папки отдельно» в разделе « Службы» .
Или после выбора целевых папок вы также можете щелкнуть Finder > Services > Compress Folders отдельно от строки меню .
Вот вам и способ сжать несколько папок по отдельности и одновременно в отдельных zip-архивах, эмулируя, как Finder создает файл zip-архива. Значение архива почтового индекса содержит сохраненные вилки ресурсов и HFS мету-данные в подкаталоге __MACOSX и встраивает только имя родительского каталога источник в целевом архиве , а не полное имя путь , как при использовании zip
(без -j
) , чтобы создать архив.
Изображение папок сжатия отдельно