Ich kann mdls verwenden, um die UTI ( Uniform Type Identifier ) für eine beliebige Datei sowie die Hierarchie der Typen anzuzeigen , die Obermengen einer bestimmten UTI sind.
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"
)
Gibt es Tools, die anzeigen können, welche Apps für eine bestimmte UTI registriert sind, außer Versuch und Irrtum?
Aus der Überprüfung geht hervor, dass die foo.command
Datei von Terminal.app geöffnet wird, aber es ist überhaupt nicht klar, dass foo.ksh derzeit zu TextEdit.app gehört.
Ich möchte in der Lage sein, die Mac OS X Launch Services- Datenbank direkt zu lesen, ohne tatsächlich zu verwenden, um open
zu sehen, welche App pro UTI-Basis ausgewählt wird. Es wäre, als hätte man --preview --verbose
Schalter, um sich zu öffnen und mir zu sagen, was ich tun würde, anstatt es zu tun.
Noch besser wäre eine Möglichkeit, alle Apps aufzulisten, die diese UTI öffnen könnten, auch wenn sie nicht die bevorzugte App sind.
Um diese sekundären Informationen zu erhalten, muss ich für jede Art von Interesse eine Datei erstellen oder finden und mit dem Finder manuell anzeigen, welche Apps diese UTI öffnen könnten.
Ich möchte wirklich in der Lage sein, programmgesteuert vom Terminal aus auf diese Daten zuzugreifen.