Onde o Mac OS X armazena informações de associação de arquivos?


24

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.


alguns por favor re-tag isso com "mac" e "OSX" (essas marcas são mais amplamente utilizados)
Thilo

Houve uma discussão sobre a meta sobre isso, mas não consegui concluir qual marca vence.
Mehrdad Afshari

Suponho que a melhor maneira de decidir o vencedor é olhar para os números. A popularidade supera a taxonomia em sites de redes sociais.
Thilo

Consulte também: superuser.com/questions/17761/… (ligeiramente diferente, mas também pode ser útil).
9139 Jonathan Leffler

Respostas:


12

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 , onde são armazenadas todas as informações de todos os aplicativos conhecidos e os tipos de documentos que eles podem manipular, está 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

A /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 -025sufixo, que é exclusivo do Snow Leopard. (Em cada versão do OS X, a 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 -034sufixo.


2
El Capitan 10.11.4:$TMPDIR/../0/com.apple.LaunchServices-134$(id -u).csstore
rob mayoff

Mas essas são pastas temporárias. Não pode estar onde está armazenado centralmente.
MELAB

11
@Melab: Cada aplicativo em um sistema Mac possui um Info.plistarquivo ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ) que descreve seus recursos. O Launch Services reúne todas essas informações dinamicamente para criar o banco de dados mencionado acima. Se o arquivo do banco de dados foi removido, o Launch Services (especificamente a lsregisterferramenta - ss64.com/osx/lsregister.html ) poderá recriá-lo.
NSGod

Na verdade, apenas a partir do caminho, parece que ele está armazenado ao lado das pastas temporárias ( ..significa "subir de nível").
SilverWolf - Restabelece Monica

18

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


15

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 em todo o sistema.

Se você executar, lsregister -dumpverá o que os Serviços de Inicialização chamam CoreTypese 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 é proveniente /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'
    ...

11
FYI -bash: lsregister: command not foundem Mavericks
Slipp D. Thompson

2
@ SlippD.Thompson observe atentamente a próxima linha, o caminho é especificado lá.
Dmitry Ginzburg

2

Mole-mole! É que não está no lugar mais óbvio:

  • Clique com o botão direito do mouse no arquivo para o qual você deseja alterar a associação e selecione " Obter informações " (ou apenas selecione e pressione Command+I .
  • Vá para " Abre com " (pode ser necessário clicar na seta ao lado para expandi-la) e selecionar outro programa na caixa suspensa.
  • Clique no botão " Alterar tudo ... " para alterar essa associação de arquivo para todos os arquivos da mesma extensão no seu sistema.

insira a descrição da imagem aqui

Você também pode instalar e instalar o prefixo RCDefaultApp para modificar todas as associações de arquivos em um único local.


3
Você leu a pergunta? Era sobre onde o OS X armazena as informações, não como alterar as associações.
Jonik

11
Sim, mas saber como alterá-los também ajuda. Como isso me ajudou ... @joshhunt: talvez se você explicitou que o material Obter informações está no Finder com o arquivo selecionado. (Só tinha para desfazer uma aplicação agarrando outra é arquivos -. Isso ajudou)
Jonathan Leffler

@LauriRanta você está absolutamente certo, na verdade, depois que eu postei isso, eu queria excluí-lo, mas não consegui encontrá-lo!
Ocodo 24/10/12

-3

~/Library/Preferences/com.apple.LaunchServices.plist

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.