如何将文件从 PC 复制到 Mac,同时保留目标文件的 xattrs?

如何将文件从 PC 复制到 Mac,同时保留目标文件的 xattrs?

我的 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

相关内容