¿Dónde almacena Mac OS X la información de asociación de archivos?

24

Sé que hay un panel de preferencias del sistema para modificar manualmente las asociaciones de archivos en Mac OS X Leopard. Sin embargo, tengo curiosidad por saber dónde guarda realmente Leopard esta información.

No me interesan los métodos para cambiarlos. Quiero saber el archivo de configuración o la base de datos (como el registro en Windows) donde se almacenan esas asignaciones.

Mehrdad Afshari
fuente
algunos por favor vuelva a etiquetar esto con "mac" y "osx" (esas etiquetas son más utilizadas)
Thilo
Hubo una discusión sobre meta sobre esto, pero no pude concluir qué etiqueta gana.
Mehrdad Afshari
Supongo que la mejor manera de decidir el ganador es mirar los números. La popularidad supera la taxonomía en los sitios de redes sociales.
Thilo
Consulte también: superuser.com/questions/17761/… (ligeramente diferente, pero también puede ser útil).
Jonathan Leffler

Respuestas:

12

Lo sentimos, esta pregunta es antigua, pero la respuesta es realmente incorrecta.

Como mencionó toolbear, la respuesta de Doug Harris es solo parcialmente correcta.

El archivo Launch Services Database , que es donde se almacena toda la información de todas las aplicaciones conocidas y los tipos de documentos que pueden manejar, se encuentra en la siguiente ubicación:

León:

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

Leopardo de nieve:

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

Leopardo:

/Library/Caches/com.apple.LaunchServices-023501.csstore

La /private/var/folders/carpeta es donde se almacenan las cachés "seguras" y las carpetas temporales para cada usuario. Los ** en la ruta que se muestra arriba serán algo así como /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/, u otra secuencia de caracteres oscura para evitar adivinanzas.

Tenga en cuenta que el nombre com.apple.LaunchServices-025501.csstorese compone de la ID de usuario (la mía está 501) adjunta al -025sufijo, que es exclusivo de Snow Leopard. (En cada versión de OS X, Apple tiende a cambiar el sufijo distintivo utilizado para evitar problemas de compatibilidad entre diferentes versiones de OS X. Notarás que Leopard usa -023). Lion está usando el -034sufijo.

NSGod
fuente
2
El Capitan 10.11.4:$TMPDIR/../0/com.apple.LaunchServices-134$(id -u).csstore
rob mayoff
Pero esas son carpetas temporales. Esos no pueden estar donde se almacena centralmente.
Melab
1
@Melab: cada aplicación en un sistema Mac tiene un Info.plistarchivo ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ) que describe sus capacidades. Launch Services recopila toda esa información de forma dinámica para crear la base de datos mencionada anteriormente. Si se eliminó el archivo de la base de datos, Launch Services (específicamente la lsregisterherramienta ss64.com/osx/lsregister.html ) puede volver a crearlo .
NSGod
En realidad, solo desde la ruta, parece que está almacenada junto a las carpetas temporales ( ..significa "subir un nivel").
SilverWolf - Restablece a Monica el
18

OS X utiliza un sistema "predeterminado": aquí hay un buen artículo con muchos ejemplos. Los archivos se almacenan en ~ / Library / Preferences, pero es mejor manipularlos con el comando "por defecto" en lugar de editar los plists directamente.

Las asociaciones de archivos se almacenan en el dominio com.apple.LaunchServices. Desde el enlace de arriba, puede ver la lista con este comando:

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

Puede encontrar mucha más información sobre los Servicios de lanzamiento específicamente en la Guía de programación de servicios de lanzamiento de Apple

Doug Harris
fuente
15

La respuesta de @Doug Harris es solo parcialmente correcta. El sistema predeterminado almacena sus adiciones locales o anulaciones a las asociaciones de archivos. Sin embargo, OS X viene con algunas asociaciones predeterminadas de todo el sistema.

Si ejecuta lsregister -dump, verá lo que Launch Services llama CoreTypesy las asociaciones proporcionadas por las aplicaciones que encuentra.

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

No he escaneado exhaustivamente la salida. Puede haber otras fuentes indicadas en ese volcado, pero una gran cantidad de estos tipos provienen /System/Library/CoreServices/CoreTypes.bundle. Puede haber un archivo de texto sin formato o plist allí donde se enumeran los tipos. Las asociaciones que creo provienen de escanear el contenido de * .app en ubicaciones de aplicaciones conocidas. Aquí es donde Launch Services entiende que TextWrangler es un editor de numerosos tipos de archivos:

--------------------------------------------------------------------------------
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'
    ...
toolbear74
fuente
1
FYI -bash: lsregister: command not founden Mavericks
Slipp D. Thompson
2
@ SlippD.Thompson mira cuidadosamente la siguiente línea, la ruta se especifica allí.
Dmitry Ginzburg
2

¡Pan comido! Es solo que no está en el lugar más obvio:

  • Haga clic derecho en el archivo para el que desea cambiar la asociación y seleccione " Obtener información " (o simplemente seleccione y presione Command+I .
  • Vaya a "Se abre con " (es posible que deba hacer clic en la flecha al lado para expandirlo) y seleccione otro programa en el cuadro desplegable.
  • Haga clic en el botón " Cambiar todo ... " para cambiar esta asociación de archivos para todos los archivos de la misma extensión en su sistema.

ingrese la descripción de la imagen aquí

También puede salir e instalar el prefpane RCDefaultApp para modificar todas las asociaciones de archivos en un solo lugar.

Josh Hunt
fuente
3
¿Leíste la pregunta? Se trataba de dónde OS X almacena la información, no cómo cambiar las asociaciones.
Jonik
1
Sí, pero saber cómo cambiarlos también ayuda. Al igual que me ayudó ... @joshhunt: tal vez si hiciste explícito que el material de Obtener información está en el Finder con el archivo seleccionado. (Solo tuve que deshacer una aplicación agarrando los archivos de otra, esto ayudó)
Jonathan Leffler
@LauriRanta tienes toda la razón, de hecho, después de que publiqué eso, quería eliminarlo, ¡pero no pude encontrarlo!
Ocodo
-3

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

Nate
fuente