私の Mac (OS X ML 10.8.4) にはファイル M があり、PC (Win7) にはファイル P があります。ファイル P は元々ファイル M のコピーでしたが、現在は若干更新されています。ファイル M には拡張属性がいくつかあります。
ファイル M の拡張属性を保持しながら、ファイル P をファイル 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