Sono in grado di utilizzare mdls per mostrare l' Uniform Type Identifier (UTI) per un file arbitrario, nonché la gerarchia di tipi che sono superset di una UTI specifica.
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"
)
Esistono strumenti in grado di mostrare quali app sono state registrate per una particolare UTI oltre a tentativi ed errori?
foo.command
Dall'ispezione risulta chiaro che il file verrà aperto da Terminal.app, ma non è affatto chiaro che foo.ksh attualmente appartiene a TextEdit.app.
Mi piacerebbe poter leggere direttamente il database dei Servizi di avvio di Mac OS X senza ricorrere effettivamente all'utilizzo open
per vedere quale app viene scelta su una base UTI. Sarebbe come avere degli --preview --verbose
interruttori che si aprono per dirmi cosa farebbe invece di farlo.
Ancora meglio sarebbe un modo per elencare tutte le app che potrebbero aprire quell'UTI, anche se non sono l'app preferita.
Per ottenere queste informazioni secondarie, devo creare o trovare un file per ogni tipo di interesse e utilizzare il Finder per mostrare manualmente quali app potrebbero aprire quell'UTI.
Mi piacerebbe davvero poter accedere a questi dati programmaticamente dal terminale.