Де Mac OS X зберігає інформацію про асоціації файлів?


24

Я знаю, що в області системних налаштувань є вручну змінювати асоціації файлів у Mac OS X Leopard. Однак мені цікаво, де Leopard насправді зберігає цю інформацію?

Мене не цікавлять методи їх зміни. Я хочу знати конфігураційний файл або базу даних (наприклад, реєстр в Windows), де зберігаються ці відображення.


деякі, будь ласка, перезазначте це за допомогою "mac" та "osx" (ці теги широко використовуються)
Thilo,

З цього приводу було обговорено мета, але я не міг зробити висновок, який тег перемагає.
Мехрдад Афшарі

Я вважаю, що найкращий спосіб визначити переможця - подивитися на цифри. Популярність б’є таксономію на сайтах соціальних мереж.
Тіло

Дивіться також: superuser.com/questions/17761/… (дещо інше, але також може бути корисним).
Джонатан Леффлер

Відповіді:


12

Вибачте, це питання давнє, але відповідь насправді неправильна.

Як зазначалося в інструменті, відповідь Дуга Харріса лише частково правильна.

Файл бази даних Launch Services , в якому зберігається вся інформація для всіх відомих програм та типи документів, з якими вони можуть працювати, розташований у такому місці:

Лев:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-034501.csstore

Сніговий леопард:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-025501.csstore

Леопард:

/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суфікс.


2
El Capitan 10.11.4:$TMPDIR/../0/com.apple.LaunchServices-134$(id -u).csstore
пограбувати майоф

Але це тимчасові папки. Вони не можуть бути там, де він зберігається централізовано.
Мелаб

1
@Melab: Кожна програма в системі Mac має Info.plistфайл ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ), який описує її можливості. Служби запуску динамічно збирають всю цю інформацію, щоб створити вищезазначену базу даних. Якщо файл бази даних було видалено, сервіс запуску (зокрема lsregisterінструмент - ss64.com/osx/lsregister.html ) може відтворити його.
NSGod

Насправді, лише з шляху, схоже, що він зберігається поруч із тимчасовими папками ( ..означає "піднятись на рівень").
SilverWolf - Відновіть Моніку

18

OS X використовує систему "за замовчуванням" - ось приємна стаття з великою кількістю прикладів. Файли зберігаються під ~ / Бібліотека / Налаштування, але найкраще маніпулювати командою "за замовчуванням", а не безпосередньо редагувати списки.

Асоціації файлів зберігаються під доменом com.apple.LaunchServices. З посилання вище, ви можете побачити список з цією командою:

defaults read com.apple.LaunchServices | grep -v LSBundleLocator

Дізнатися більше про Launch Services, зокрема, можна в Посібнику з програмування служб Apple


15

Відповідь @Doug Harris лише частково правильна. Система за замовчуванням зберігає ваші локальні доповнення або переопределення до асоціацій файлів. Однак OS X поставляється з деякими системними асоціаціями за замовчуванням.

Якщо ви запустите, lsregister -dumpви побачите, що викликає Служби запуску CoreTypesта асоціації, надані програмами, які він знайде.

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump

Я не вичерпно просканував вихід. На цьому смітнику можуть бути й інші джерела, але велика кількість цих типів походить /System/Library/CoreServices/CoreTypes.bundle. Там може бути файл простого тексту або пліст, де перераховуються типи. Асоціації, на які я вважаю, походять від сканування вмісту * .app у відомих місцях додатків. Ось де Launch Services розуміє TextWrangler є редактором для багатьох типів файлів:

--------------------------------------------------------------------------------
bundle  id:            10928
    path:          /Applications/TextWrangler.app
    name:          TextWrangler
    identifier:    com.barebones.textwrangler (0x8000008d)
    ...
    library items:
    --------------------------------------------------------
    claim   id:            20216
        name:          TextWrangler text document
        rank:          Default
        roles:         Editor  
        flags:         relative-icon-path  
        icon:          Contents/Resources/TextWranglerTextDoc.icns
        bindings:      .a, .asm, .asp, .bashrc, .c, .c++, .cc, .cfm, .conf, .cp, .cpp, .cshrc, .css, .cxx, .equ, .f, .f77, .for, .ftn, .h, .h++, .hpp, .htm, .html, .inc, .j, .java, .js, .jsp, .log, .m, .mm, .p, .pas, .pch, .pch++, .php, .php3, .pl, .plist, .plx, .pm, .ppu, .r, .rb, .rez, .rhtml, .rss, .s, .sql, .shtm, .shtml, .tcl, .tcshrc, .text, .txt, .wml, .xhtml, .xml, .xsl, .xslt, .yaml, 'TEXT'
    ...

1
FYI -bash: lsregister: command not foundin Mavericks
Slipp D. Thompson,

2
@ SlippD.Thompson уважно подивіться на наступний рядок, шлях вказаний там.
Дмитро Гінзбург

2

Простенька! Це просто те, що він знаходиться не в найбільш очевидному місці:

  • Клацніть правою кнопкою миші на файл, для якого потрібно змінити асоціацію, і виберіть " Отримати інформацію " (або просто виберіть і натисніть Command+I .
  • Перейдіть до пункту « Відкривається з » (можливо, вам знадобиться натиснути стрілку біля нього, щоб розгорнути її) та виберіть іншу програму зі спадного поля.
  • Натисніть кнопку " Змінити всі ... ", щоб змінити цю асоціацію файлів для всіх файлів того самого розширення у вашій системі.

введіть тут опис зображення

Ви також можете вийти і встановити prefpane RCDefaultApp, щоб змінити всі асоціації файлів в одному місці.


3
Ви читали питання? Йшлося про те, де OS X зберігає інформацію, а не про те, як змінити асоціації.
Джонік

1
Так, але знати, як їх змінити, також допомагає. Начебто це допомогло мені ... @joshhunt: можливо, якщо ви чітко вказали, що матеріали "Інформація про інформацію" знаходяться у Finder із вибраним файлом. (Просто довелося скасувати одну програму, захопивши файли іншого - це допомогло.)
Джонатан Леффлер

@LauriRanta ви абсолютно праві, адже після того як я опублікував це, я хотів його видалити, але не зміг його знайти!
окудо

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