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

smo*_*ris 29 command-line macos

是否有命令行实用程序可以将文件名传递给该实用程序,该实用程序将返回该文件的适用 UTI?

例如:

hypothetical-uti-fetcher /Library/Desktop\ Pictures/Aqua\ Blue.jpg
Run Code Online (Sandbox Code Playgroud)

可能会给我:

public.jpeg
public.image
public.data
Run Code Online (Sandbox Code Playgroud)

Wuf*_*ers 35

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

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

它会给你一堆信息,在顶部它会说类似的东西

kMDItemContentType             = "public.plain-text"
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 优秀。谢谢。`mdls -name kMDItemContentTypeTree /Library/Desktop\ Pictures/Aqua\ Blue.jpg` 正是我想要的。 (4认同)
  • 假设我关闭了 Spotlight 索引并且似乎没有存储元数据。(mdls 任何文件只是说未找到该文件)。md* 服务首先如何生成内容类型? (2认同)

小智 8

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

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

qlmanage -d 4 -p /path/to/file
Run Code Online (Sandbox Code Playgroud)