5

Mac OS X использует zip в качестве формата сжатия по умолчанию. Это удобно сделать доступным из контекстного меню (щелчок мышью / щелчок правой кнопкой мыши). Я хотел бы изменить это значение по умолчанию на bzip2.

Я могу сделать это через командную строку с ...

tar cfj something.tar.bz2 something

... Я мог бы даже обернуть это в действие Automator или что-то подобное, но было бы неплохо просто настроить по умолчанию. Есть идеи?

ТИА

5 ответов5

8

/System/Library/CoreServices/Archive Utility действительно имеет настройку формата архива, но, похоже, он управляет только архивами, созданными Archive Utility, а не Finder. Кроме того, он может выбирать формат Zip, обычный (cpio archive) и сжатый (gzipped cpio) - tar и tgz отсутствуют в списке.

Это не совсем то, что вы ищете, но Snow Leopard улучшил систему "обслуживания" до такой степени, что она действительно полезна для подобных вещей. Запустите Automator (я знаю, но придерживайтесь меня ...), создайте Службу, а не Рабочий процесс, установите "Служба получает выбранный" в "Файлы и папки", а затем скопируйте второе действие из рабочего процесса 11, на который вы указали, и сохранить его под некоторым разумным именем. Затем выберите файл в Finder, щелкните правой кнопкой мыши и посмотрите внизу контекстного меню для только что созданной службы. Он также будет доступен в меню "Действие" (снаряжение) на панели инструментов Finder и в меню "Finder"> "Службы". Для этого можно создать сочетание клавиш в "Системных настройках"> "Клавиатура"> "Сочетания клавиш"> "Службы" (затем найдите свою службу, щелкните в правом столбце "Невидимый" и введите нужное сочетание клавиш).

3

Расширяя ответ Гордона Дэвиссона, вы можете использовать такой скрипт в сервисе Automator:

set -e
[[ $# = 1 ]] && name=${1##*/} || name=untitled
base=${1%/*}
cd "$base"
i=2
[[ -e $name.tbz ]] && name="$name-$i"
while [[ -e $name.tbz ]]; do name="${name%??}-$((++i))"; done
COPYFILE_DISABLE= tar --exclude .DS_Store -cjf ./"$name".tbz -- "${@#"$base"/}"
open -R ./"$name".tbz

Установка COPYFILE_DISABLE указывает tar удалить расширенные атрибуты и ACL вместо создания ._ файлов. Смотрите этот вопрос.

В архивах tar часто содержатся все файлы в одном каталоге, но если сценарий получает несколько файлов в качестве входных данных, он не создает такой каталог для файлов.

1

Глядя на /System/Library/CoreServices/Archive Utility.app , кажется, что нет никаких предпочтений для установки формата архива.

Я могу предложить вам загрузить и поместить CleanArchiver в вашу док-станцию. Запустите его один раз и установите bzip2 по умолчанию, а затем, когда вы захотите сжать что-либо, перетащите его на значок в доке, вместо того, чтобы нажимать на кнопку управления.

Я предполагаю, что это не сильно отличается от работы с автоматизатором, но это может быть удобным инструментом, так как он может быть настроен на автоматическое исключение подобных вещей.DS_Store файлы.

1

Смотреть на:

/System/Library/CoreServices/Archive Utility.app/Contents/Resources

Есть Archives.PrefPane которая будет установлена сама, если вы нажмете на нее .

К сожалению, он не устанавливает много с точки зрения формата сжатия или уровня сжатия. (видно в OSX 10.5 или 10.6)

-1

переместить папку на рабочий стол. щелкните правой кнопкой мыши на папке. в "ПОИСКЕ" щелкните левой кнопкой мыши на файле. Откроется выпадающее меню. Выберите - Сжать "имя файла".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .