Macos 在文件上设置元数据字段

Macos 在文件上设置元数据字段,macos,unix,metadata,Macos,Unix,Metadata,我有一个PDF文件。如果我查看“获取信息”窗口,“更多信息”下的标题是“标题1”。我正在尝试使用terminal设置此值,以便最终将其转换为applescript 见Stackoverflow问题 我使用Anderson Freitas的答案,通过使用命令正确设置作者“ 但是,如果我用mMDItemTitle替换kMDItemAuthors,则命令运行时不会出错,但通过查看Get Info或在命令行上使用MDL,在标题中看不到任何更改 my title.plist文件的内容是: <?xml

我有一个PDF文件。如果我查看“获取信息”窗口,“更多信息”下的标题是“标题1”。我正在尝试使用terminal设置此值,以便最终将其转换为applescript

见Stackoverflow问题

我使用Anderson Freitas的答案,通过使用命令正确设置作者“

但是,如果我用mMDItemTitle替换kMDItemAuthors,则命令运行时不会出错,但通过查看Get Info或在命令行上使用MDL,在标题中看不到任何更改

my title.plist文件的内容是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<string>Title2</string>
</plist>

有没有想到我可能做错了什么?

仅仅因为作者元数据是(或可以是)存储在扩展属性中,这并不意味着所有元数据都是。标题可能来自PDF内容本身,由Spotlight importer为PDF文档提取。如果是,则没有可设置或修改的扩展属性来更改它。您可以检查原始文件是否(无需修改)使用
ls-l@
有这样一个扩展属性。即使有一个扩展属性,其数据格式也将是一个实现细节。您不能假设它是一个plist。根据您的回答提供更多信息:(抱歉,第一条评论无法编辑)根据您的回答,还有一点信息:1.您是正确的,原始文件上的ls-l@没有显示扩展属性。但是,原始文件上的MDL同时显示kMDItemAuthors和kMDItemTitle属性。2.我可以通过Automator“set PDF Metadata”设置这两个属性“。执行此操作后,两个属性都使用ls-l@3显示。所以,虽然我同意,但我不能假设标题是plist,有人知道它可能是什么以及如何设置吗?这个问题似乎离题了,因为它与编程无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<string>Title2</string>
</plist>
xattr -wx "com.apple.metadata:kMDItemTitle" "`xxd -ps title.plist`" "Put File Name Here.pdf"