Я знаю, что есть панель системных настроек, чтобы вручную изменять ассоциации файлов в Mac OS X Leopard. Тем не менее, мне любопытно, где Leopard на самом деле хранит эту информацию?
Меня не интересуют методы их изменения. Я хочу знать файл конфигурации или базу данных (например, реестр в Windows), где хранятся эти сопоставления.
macos
mac
file-association
osx-leopard
Мехрдад Афшари
источник
источник
Ответы:
Извините, этот вопрос старый, но ответ действительно неправильный.
Как уже упоминалось, инструмент Дуга Харриса является лишь частично правильным.
Database Launch Services файл, где все информации для всех известных приложений и типов документов , которые они могут обрабатывать хранится, находится в следующем месте:
Лев:
/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-034501.csstore
Снежный барс:
/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-025501.csstore
Leopard:
/Library/Caches/com.apple.LaunchServices-023501.csstore
В этой
/private/var/folders/
папке хранятся «безопасные» кэши и временные папки для каждого пользователя. ** в пути, показанном выше, будет чем-то вроде/dl/dlXWtS5WH9SNboPxxrDIyE+++TI/
или другой непонятной последовательностью символов, чтобы предотвратить угадывание.Обратите внимание, что имя
com.apple.LaunchServices-025501.csstore
состоит из идентификатора пользователя (мой501
) добавлен к-025
суффиксу, который является уникальным для Snow Leopard. (В каждой версии OS X Apple имеет тенденцию изменять отличительный суффикс, используемый, чтобы предотвратить проблемы совместимости между различными версиями OS X. Вы заметите, что Leopard использовал-023
). Лев использует-034
суффикс.источник
$TMPDIR/../0/com.apple.LaunchServices-134$(id -u).csstore
Info.plist
файл ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ), в котором описываются его возможности. Launch Services собирает всю эту информацию динамически для создания базы данных, упомянутой выше. Если файл базы данных был удален, Launch Services (в частности,lsregister
инструмент - ss64.com/osx/lsregister.html ) может воссоздать его...
означает «подняться на уровень»).OS X использует систему «по умолчанию» - вот хорошая статья с множеством примеров. Файлы хранятся в ~ / Library / Preferences, но лучше манипулировать с помощью команды "defaults", а не редактировать списки напрямую.
Файловые ассоциации хранятся в домене com.apple.LaunchServices. По приведенной выше ссылке вы можете увидеть список с помощью этой команды:
Более подробную информацию о Launch Services можно найти в Руководстве по программированию Launch Services от Apple.
источник
@ Дуг Харрис ответ только частично правильно. Система по умолчанию хранит ваши локальные дополнения или переопределения для ассоциаций файлов. Однако OS X поставляется с некоторыми стандартными общесистемными ассоциациями.
Если вы запустите,
lsregister -dump
вы увидите, что вызывает Launch ServicesCoreTypes
и ассоциации, предоставляемые приложениями, которые он находит.Я не полностью отсканировал вывод. Там могут быть другие источники, указанные в этом дампе, но большое количество этих типов происходят из
/System/Library/CoreServices/CoreTypes.bundle
. Там, где перечислены типы, может быть файл с открытым текстом или plist. Я полагаю, что ассоциации связаны со сканированием содержимого * .app в известных местоположениях приложений. Вот где Launch Services понимает, что TextWrangler является редактором файлов различных типов:источник
-bash: lsregister: command not found
МавериксОчень просто! Просто это не в самом очевидном месте:
Вы также можете выйти и установить предварительную панель RCDefaultApp, чтобы изменить все ассоциации файлов в одном месте.
источник
~/Library/Preferences/com.apple.LaunchServices.plist
источник