1

我正在尝试在 OSX 上的 bash 中使用 xattr 获取文件的注释属性。这是我正在运行的代码:

xattr -p com.apple.metadata:kMDItemFinderComment "/Users/fred/Dropbox/OSXStuff/app.icns"

但是它返回的是十六进制而不是注释字符串。在 osx 中 xattr 的手册页上,它说

如果在数据中检测到 nil,则该值以十六进制表示形式显示

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xattr.1.html

究竟什么是“零”,它是如何出现在评论中的?是否可以在 OSX 中使用 xattr 获取文件注释的字符串值,或者文件注释中总是有“nils”?

4

2 回答 2

4

不要尝试解析扩展属性。要求元数据系统(又名 Spotlight)直接为您获取信息:

mdls -raw -name kMDItemFinderComment "/Users/fred/Dropbox/OSXStuff/app.icns"

注释保存在扩展属性中的事实,更不用说该属性的格式,是一个不能依赖的实现细节。

于 2014-08-29T06:08:40.740 回答
0

请注意,如果您在 Spotlight Preferences 的 Privacy 选项卡中指定了项目或其包含路径,则 mdls(至少在 Yosemite 上)似乎只能检索/输出最基本的属性信息(不包括 kMDItemUserTags)。

一旦您将其从隐私列表中删除,并给 Spotlight 一些时间来完成它的工作,完整的属性列表就会变得可用。

我花了一段时间才弄清楚。

于 2015-01-12T22:33:11.693 回答