У меня есть файл M на моем Mac (OS X ML 10.8.4) и файл P на моем PC (Win7). Файл 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