从osx上的Bash文件中获取注释属性

时间:2014-08-29 02:32:50

标签: macos bash xattr

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

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

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

  

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

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

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

2 个答案:

答案 0 :(得分:4)

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

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

评论保存在扩展属性中,更不用说该属性的格式,这是一个无法依赖的实现细节。

答案 1 :(得分:0)

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

只要您从隐私列表中删除它,并为Spotlight提供一些时间来完成它,就可以获得完整的属性列表。

我花了一段时间才弄明白。

相关问题