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