Puedo usar mdls para mostrar el Identificador de tipo uniforme (UTI) para un archivo arbitrario, así como la jerarquía de tipos que son superconjuntos de una UTI específica.
mac:~ mike$ mdls -name kMDItemContentType -name kMDItemContentTypeTree foo.ksh
kMDItemContentType = "public.ksh-script"
kMDItemContentTypeTree = (
"public.ksh-script",
"public.shell-script",
"public.script",
"public.source-code",
"public.plain-text",
"public.text",
"public.data",
"public.item",
"public.content"
)
mac:~ mike$ mdls -name kMDItemContentType -name kMDItemContentTypeTree foo.command
kMDItemContentType = "com.apple.terminal.shell-script"
kMDItemContentTypeTree = (
"com.apple.terminal.shell-script",
"public.shell-script",
"public.script",
"public.source-code",
"public.plain-text",
"public.text",
"public.data",
"public.item",
"public.content"
)
¿Hay alguna herramienta que pueda mostrar qué aplicaciones se han registrado para una IU en particular que no sean prueba y error?
De la inspección queda claro que foo.command
Terminal.app abrirá el archivo, pero no está nada claro que foo.ksh pertenezca actualmente a TextEdit.app.
Me gustaría poder leer la base de datos de Mac OS X Launch Services directamente sin tener que recurrir a open
la aplicación para ver qué aplicación se elige por UTI. Sería como tener --preview --verbose
interruptores abiertos para decirme qué haría en lugar de hacerlo.
Aún mejor sería una forma de enumerar todas las aplicaciones que podrían abrir esa UTI, incluso si no son la aplicación preferida.
Para obtener esta información secundaria, tengo que crear o encontrar un archivo para cada tipo de interés y usar Finder para mostrar manualmente qué aplicaciones podrían abrir esa UTI.
Realmente me gustaría poder acceder a estos datos mediante programación desde el terminal.