Como copiar o arquivo do PC para o Mac, preservando o xattrs no arquivo de destino?

Como copiar o arquivo do PC para o Mac, preservando o xattrs no arquivo de destino?

Tenho um arquivo M no meu Mac (OS X ML 10.8.4) e um arquivo P no meu PC (Win7). O arquivo P era originalmente uma cópia do arquivo M, mas agora está ligeiramente atualizado. O arquivo M possui alguns atributos estendidos.

Como posso copiar o arquivo P para o arquivo M, preservando os atributos estendidos no arquivo M?

Geralmente, se eu copiar e colar P em M por meio do compartilhamento de rede, os atributos estendidos em M serão perdidos.

Estou procurando uma maneira facilmente implementável/escalável. cat P > Mnão é realmente uma opção (nem tenho certeza se funciona). Poderia rsyncajudar aqui?

Responder1

Se ainda houver arquivos ._, você poderá mesclá-los com 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

Você pode copiar atributos com xattr -wx e -px:

xattr -wx attributename "$(xattr -px attributename source.txt)" target.txt

xattr só imprime nomes de atributos se o argumento for um único arquivo:

for f; do
  for a in $(xattr "$f"); do
    xattr -wx $a "$(xattr -px $a ~/Documents/Original/"$f")" "$f"
  done
done

informação relacionada