Sei que existe um painel de preferências do sistema para modificar manualmente as associações de arquivos no Mac OS X Leopard. No entanto, estou curioso para saber onde o Leopard realmente armazena essas informações.
Não estou interessado em métodos para alterá-los. Quero conhecer o arquivo de configuração ou o banco de dados (como o registro no Windows) em que esses mapeamentos estão armazenados.
Desculpe, esta pergunta é antiga, mas a resposta está realmente errada.
Como mencionado, a resposta de Doug Harris está apenas parcialmente correta.
O arquivo Launch Services Database, que é o local onde todos das informações para todos aplicativos conhecidos e os tipos de documentos que eles podem manipular são armazenados, é armazenado. localizado no seguinte local:
Leão:
/private/var/folders/**/**/-Caches-/com.Apple.LaunchServices-034501.csstore
Leopardo da neve:
/private/var/folders/**/**/-Caches-/com.Apple.LaunchServices-025501.csstore
Leopardo:
/Library/Caches/com.Apple.LaunchServices-023501.csstore
O /private/var/folders/
pasta é onde os caches "seguros" e as pastas temporárias de cada usuário são armazenados. Os ** no caminho mostrado acima serão algo como /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/
, ou outra sequência de caracteres obscura para evitar adivinhações.
Observe que o nome com.Apple.LaunchServices-025501.csstore
é composto pelo ID do usuário (o meu é 501
) anexado ao -025
sufixo, exclusivo do Snow Leopard. (Em cada versão do OS X, Apple tende a alterar o sufixo distintivo usado para evitar problemas de compatibilidade entre diferentes versões do OS X. Você notará que o Leopard usou -023
). Lion está usando o -034
sufixo.
O OS X usa um sistema "padrão" - aqui está um bom artigo com muitos exemplos. Os arquivos são armazenados em ~/Library/Preferences, mas é melhor manipular com o comando "default" em vez de editar as listas diretamente.
Associações de arquivo são armazenadas no domínio com.Apple.LaunchServices. No link acima, você pode ver a lista com este comando:
defaults read com.Apple.LaunchServices | grep -v LSBundleLocator
Muito mais informações sobre os Serviços de Lançamento, especificamente, podem ser encontradas no Guia de Programação dos Serviços de Lançamento da Apple
A resposta de @Doug Harris está apenas parcialmente correta. O sistema padrão armazena suas adições ou substituições locais nas associações de arquivos. No entanto, o OS X vem com algumas associações padrão de todo o sistema.
Se você executar lsregister -dump
você verá o que os Serviços de Inicialização chamam CoreTypes
e as associações fornecidas pelos aplicativos encontrados.
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump
Não digitalizei exaustivamente a saída. Pode haver outras fontes indicadas nesse despejo, mas um grande número desses tipos vem de /System/Library/CoreServices/CoreTypes.bundle
. Pode haver um arquivo de texto simples ou plist onde os tipos são enumerados. As associações que acredito vêm da digitalização do conteúdo de * .app em locais de aplicativos conhecidos. Aqui é onde o Launch Services entende que o TextWrangler é um editor de vários tipos de arquivos:
--------------------------------------------------------------------------------
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'
...
Mole-mole! É que não está no lugar mais óbvio:
Você também pode instalar e instalar RCDefaultApp prefpane para modificar todas as associações de arquivos em um único local.