Как скопировать файл с ПК на Mac, сохранив xattrs в целевом файле?

Как скопировать файл с ПК на Mac, сохранив xattrs в целевом файле?

У меня есть файл 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

Связанный контент