Como copiar uma pasta mantendo intactos os proprietários e as permissões?

25

Então, eu estava indo para fazer backup da minha pasta pessoal, copiando-a para uma unidade externa da seguinte maneira:

sudo cp -r /home/my_home /media/backup/my_home

Com o resultado de que todas as pastas nas unidades externas agora pertencem root:root. Como posso cpmanter a propriedade e as permissões do original?

Psachnodaimonia
fonte

Respostas:

27

Use a -pbandeira.

-p     same as --preserve=mode,ownership,timestamps

--preserve[=ATTR_LIST]
       preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all

Observe que, para que as permissões sejam replicadas corretamente, o sistema de arquivos de destino deve ser o mesmo que o sistema de arquivos de origem. Em outras palavras, sua unidade externa deve ser formatada como ext4se, como normalmente acontece, sua pasta pessoal estiver armazenada em uma partição desse tipo.

SirCharlo
fonte
7

Use sudo cp -a /home/my_home /media/backup/my_home, ele recursará em subdiretórios e preservará todos os atributos do arquivo.

Eric Carvalho
fonte
5

Você pode usar o sinalizador -p:
cp -rp /home/my_home /media/backup/my_home
ou a linha de comando rsync:
rsync -aux /home/my_home /media/backup/my_home

SWdream
fonte