Ich habe eine Datei M auf meinem Mac (OS X ML 10.8.4) und eine Datei P auf meinem PC (Win7). Datei P war ursprünglich eine Kopie von Datei M, wurde jetzt aber leicht aktualisiert. Datei M hat einige erweiterte Attribute.
Wie kann ich die Datei P in die Datei M kopieren und dabei die erweiterten Attribute der Datei M beibehalten?
Wenn ich P über die Netzwerkfreigabe auf M kopiere und einfüge, gehen im Allgemeinen die erweiterten Attribute auf M verloren.
Ich suche nach einer leicht umsetzbaren/skalierbaren Möglichkeit. cat P > M
ist keine wirkliche Option (bin mir nicht einmal sicher, ob das funktioniert). Könnte rsync
hier helfen?
Antwort1
Wenn noch ._ Dateien vorhanden sind, können Sie diese mit dot_clean zusammenführen:
$ 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
Sie können Attribute mit xattr -wx und -px kopieren:
xattr -wx attributename "$(xattr -px attributename source.txt)" target.txt
xattr druckt Attributnamen nur, wenn das Argument eine einzelne Datei ist:
for f; do
for a in $(xattr "$f"); do
xattr -wx $a "$(xattr -px $a ~/Documents/Original/"$f")" "$f"
done
done