我的 Mac(OS X ML 10.8.4)上有一个文件 M,我的 PC(Win7)上有一个文件 P。文件 P 最初是文件 M 的副本,但现在略有更新。文件 M 有一些扩展属性。
如何将文件 P 复制到文件 M,同时保留文件 M 的扩展属性?
通常,如果我通过网络共享将 P 复制粘贴到 M 上,M 上的扩展属性就会丢失。
我正在寻找一种易于实施/可扩展的方法。这cat P > M
实际上不是一个选择(甚至不确定是否有效)。可以rsync
帮忙吗?
答案1
如果仍有 ._ 文件,您可以使用 dot_clean 合并它们:
$ ls -A
._test.txt test.txt
$ xattr -l test.txt
$ dot_clean .
$ ls -A
test.txt
$ xattr -l test.txt
com.apple.TextEncoding: utf-8;134217984
您可以使用 xattr -wx 和 -px 复制属性:
xattr -wx attributename "$(xattr -px attributename source.txt)" target.txt
如果参数是单个文件,xattr 仅打印属性名称:
for f; do
for a in $(xattr "$f"); do
xattr -wx $a "$(xattr -px $a ~/Documents/Original/"$f")" "$f"
done
done