¿Cómo copio una carpeta manteniendo intactos los propietarios y los permisos?

25

Así que iba a hacer una copia de seguridad de mi carpeta de inicio copiándola en una unidad externa de la siguiente manera:

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

Con el resultado de que todas las carpetas en las unidades externas ahora son propiedad de root:root. ¿Cómo puedo cpmantener la propiedad y los permisos del original?

Psachnodaimonia
fuente

Respuestas:

27

Usa la -pbandera.

-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

Tenga en cuenta que para que los permisos se repliquen correctamente, el sistema de archivos de destino debe ser el mismo que el sistema de archivos de origen. En otras palabras, su unidad externa debe formatearse como ext4si, como suele ser el caso, su carpeta de inicio esté almacenada en una partición de ese tipo.

SirCharlo
fuente
7

Utilícelo sudo cp -a /home/my_home /media/backup/my_home, se repetirá en subdirecciones y conservará todos los atributos del archivo.

Eric Carvalho
fuente
5

Puede usar el indicador -p:
cp -rp /home/my_home /media/backup/my_home
o usar la línea de comando rsync:
rsync -aux /home/my_home /media/backup/my_home

Sueño
fuente