如何將檔案從 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

相關內容