Як встановити формат стиснення за замовчуванням для Mac OS X?


5

Mac OS X використовує zip як формат стиснення за замовчуванням. Це робить це зручно доступним у контекстному меню (керування клацанням / клацанням правою кнопкою миші). Я б хотів налаштувати цей замовчування на bzip2.

Я можу це зробити за допомогою командного рядка за допомогою ...

tar cfj something.tar.bz2 something

... Я навіть міг би це зробити в дії "Автоматизатор" чи подібному, але було б добре просто відрегулювати за замовчуванням. Якісь ідеї?

ТІА


Якщо ви знаєте Objective-C, ви можете спробувати використовувати SIMBL для введення коду в Finder. Щоб дізнатися, що саме вам потрібно, ви можете використовувати F-Script , який дозволяє перевірити запущені програми та введення коду під час виконання. Після того як ви встановите та налаштуєте його, приєднайте до процесу Finder (як root) та відкрийте браузер Object. Через пару хвилин ви побачите, що NSResponder має TContextMenu, який, в свою чергу, має NSMenuItem, який утримує дію, відповідальну за стиснення. Я не пішов далі, але з
Мігель

Відповіді:


8

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

Це не зовсім те, що ви шукаєте, але Snow Leopard вдосконалив систему «сервісу» до того, що це насправді корисно для таких речей. Запустіть Automator (я знаю, але дотримуйтесь мене ...), створіть Службу, а не Workflow, встановіть "Сервіс отримує вибране" на "Файли та папки", а потім скопіюйте у другій дії з робочого процесу 11, на який ви вказали, і збережіть його під якоюсь розумною назвою. Потім виберіть файл у Finder, клацніть правою кнопкою миші та подивіться внизу контекстного меню для щойно створеної послуги. Він також буде доступний у меню Дія (шестірня) на панелі інструментів Finder та під меню Finder> Services. Ви можете зробити комбінацію клавіш на клавіатурі в Налаштуваннях системи> Клавіатура> Комбінації клавіш> Сервіси (тоді знайдіть свою службу,


Як ви кажете, "не зовсім", але я підозрюю, що це так близько, як я доберуся. :-)
Карлтон Гібсон

3

Розгортаючись на відповідь Гордона Девіссона, ви можете використовувати такий сценарій у службі Автоматизатор:

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

перемістити папку на робочий стіл. клацніть правою кнопкою миші на папці. у лівій кнопці миші натисніть на файл. Відкриється меню, що випадає. Виберіть - Стисніть "ім'я файлу".


1
Йдеться не про те, як стиснути , а скоріше, як вибрати формат стиснення .
Даніель Бек
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.