如何删除Mac OS X中文件的“扩展属性”?
我有一个运行压力testing的AppleScript脚本。 部分testing是打开,保存和closures某些文件。 不知何故,这些文件拿起了一些“扩展属性”,禁止保存文件。 这导致压力testing失败。
我如何删除扩展属性?
使用xattr
命令。 您可以检查扩展属性:
$ xattr s.7z com.apple.metadata:kMDItemWhereFroms com.apple.quarantine
并使用-d
选项删除一个扩展属性:
$ xattr -d com.apple.quarantine s.7z $ xattr s.7z com.apple.metadata:kMDItemWhereFroms
您还可以使用-c
选项删除所有扩展属性:
$ xattr -c s.7z $ xattr s.7z
xattr -h
将显示命令行选项,而xattr有一个手册页 。
删除单个文件上的单个属性
看到Bavarious的答案。
删除单个文件上的所有扩展属性
使用带-c
标志的xattr
来“清除”属性:
xattr -c yourfile.txt
在许多文件上删除所有扩展的属性
要recursion删除目录中所有文件的扩展属性,请将-c
“clear”标志与-r
recursion标志合并:
xattr -rc /path/to/directory
为Mac OS X用户提示
有一个很长的空间或特殊字符的path?
打开Terminal.app
并开始inputxattr -rc
,包含尾随空格,然后将文件或文件夹拖到Terminal.app
窗口,它会自动添加正确的转义path。
尝试使用:
xattr -rd com.apple.quarantine directoryname
这需要在每个地方recursion地去除麻烦的属性。
另一种recursion方法:
# change directory to target folder: cd /Volumes/path/to/folder # find all things of type "f" (file), # then pipe "|" each result as an argument (xargs -0) # to the "xattr -c" command: find . -type f -print0 | xargs -0 xattr -c # Sometimes you may have to use a star * instead of the dot. # The dot just means "here" (whereever your cd'd to find * -type f -print0 | xargs -0 xattr -c