2014-08-29 40 views
1

我想要在OSX上的bash中使用xattr获取文件的评论属性。这是我正在运行的代码:从bash上的文件获取评论属性在osx

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

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

如果在 数据检测尼尔斯,该值显示在十六进制表示

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

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

+0

我想'nils'他们打算“零字节”或“空字符”。如果缓冲区中间有这样的零,它不太可能是一个字符串,因此它被打印为十六进制数字 – pqnet 2014-08-29 02:45:21

+0

@Coop,十六进制值包括注释字符串。 – 2014-08-29 05:51:50

回答

4

不要试图解析扩展属性。问元数据系统(又名聚焦)直接获得信息,供各位:

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

该评论被保存在扩展属性的事实,更何况该属性的格式,是一个实现细节,可以”不值得信赖。

0

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

只要您将其从隐私列表中删除,并让Spotlight有时间完成任务,属性的完整列表将变为可用。

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