如何从 Mac OS X 中的命令行获取文件的 UTI?

如何从 Mac OS X 中的命令行获取文件的 UTI?

是否有一个命令行实用程序,我可以向其传递一个文件名,然后它会返回该文件适用的 UTI?

例如:

hypothetical-uti-fetcher /Library/Desktop\ Pictures/Aqua\ Blue.jpg

可能会给我:

public.jpeg
public.image
public.data

答案1

您可以使用以下mdls命令查找文件的 UTI:

mdls /Library/Desktop\ Pictures/Aqua\ Blue.jpg

它会给你一堆信息,在顶部它会显示类似

kMDItemContentType             = "public.plain-text"

希望这可以帮助!

答案2

mdls 命令似乎只适用于 Spotlight 索引文件。如果您在已安装的磁盘映像、CD 或 U 盘上运行该命令,它可能根本不会返回任何信息。

当您开发 Quicklook 插件时,使用以下命令查看 Quicklook 认为文件具有哪些 UTI 以及它用于预览的插件也很有用:

qlmanage -d 4 -p /path/to/file

答案3

即使 Spotlight 尚未索引该文件,您仍然可以使用 mdls 来查找 UTI:

mdls -name kMDItemContentType /path/to/file

答案4

您可以创建一个工作流程来从选定的文件中获取 UTI。

on run {input, parameters}
    tell application "System Events"
        set ff to item 1 of input
        set uti to type identifier of ff
        set ans to display dialog uti buttons {"Copy to Clipboard", "OK"} default button "Copy to Clipboard"
        if button returned of ans is "Copy to Clipboard" then
            set the clipboard to uti
        end if
    end tell
end run

相关内容