Copie archivos sin perder los permisos de archivo / carpeta

36

¿Cómo puedo copiar archivos / carpetas desde una computadora ubuntu en un sistema de archivos ext4 a otra computadora ubuntu que también está en un sistema de archivos ext4, usando un dispositivo usb que usa un sistema de archivos vfat sin perder los permisos de archivos?

He probado el ctrl-c básico de la computadora de origen, luego ctrl-v a usb, luego ctrl-c de usb y luego ctrl-v a la computadora de destino, y ninguno de los permisos de archivo / carpeta permanece intacto.

oshirowanen
fuente
vfatno admite permisos de sistema de archivos unix. Tendrá que almacenarlos en un tarball, o algo similar, si desea conservarlos.
Alex L.
¿Por qué no rsync, como sugerí?
SiddharthaRT

Respuestas:

56

Puede hacer un archivo tar de la fuente, copiarlo a la otra computadora usando la unidad USB y extraerlo allí. Tar conserva los permisos de archivo.

1 - En la computadora fuente:

cd /path/to/folder/to/copy
tar cvpzf put_your_name_here.tar.gz .

2 - Copie put_your_name_here.tar.gza la unidad USB y luego a la otra computadora

3 - En la computadora de destino:

cd /path/to/destination/folder
tar xpvzf put_your_name_here.tar.gz

tar recreará la estructura de carpetas archivadas con todos los permisos intactos.

Esos comandos archivarán el contenido de la carpeta de origen y luego los extraerán en la carpeta de destino. Si desea copiar la carpeta en sí, debe hacerlo, en el paso 1:

cd /path/to/parent/folder
tar cvpzf put_your_name_here.tar.gz folder_to_copy

El mismo mecanismo podría usarse para archivos individuales.


Si puede conectarse de una computadora a otra utilizando ssh, @siddharthart answer ( rsync) podría ser más práctico.

sierrasdetandil
fuente
No olvide la -pbandera tarpara garantizar que se conserven los permisos.
haziz
@haziz En realidad, -pno es realmente necesario, mira mi comentario a la respuesta de @ mikewhatever. El -ztampoco es necesario cuando desempaquetarlo, ya que tares capaz de averiguar el tipo de compresión en sí, a menos que sea una versión antigua. Incluir las banderas en el comando no duele, es difícil.
sierrasdetandil
3
No creo que puedas contar con este comportamiento. Por cierto, citando la página man tar "-p, --preserve-permissions, --same-permissions extrae información sobre los permisos de archivo (predeterminado para superusuario)", este parece ser el comportamiento predeterminado solo si tar se invoca como superusuario. No contaría con esto como comportamiento predeterminado. También siempre deletrearía explícitamente la -zbandera al comprimir o descomprimir (o -jsi utilizo bzip2).
haziz
¿Se podría agregar fácilmente el cifrado (básico)? (Supongo que habría muchas formas de hacerlo, pero me pregunto, pero si se hace a través de la línea de comando, ¿cómo se proporcionaría la contraseña / clave de cifrado / frase de contraseña?) ******** o como la contraseña de sudo, donde no se hacen pulsaciones de teclas visibles?)
chiflado sobre natty
tarsufre un problema muy grave: se ahoga en rutas de más de 100 caracteres.
Nathan Osman
12

Puede intentar rsynccon la -abandera para mantener todos los permisos durante la copia. No conozco una solución más simple, pero la había usado para un propósito en el pasado.

Rsync brinda un soporte brillante para copias repetidas, actualizaciones de carpetas, etc. mientras se mantiene increíblemente rápido.

SiddharthaRT
fuente
66
Me gusta rsync(me encanta, de hecho: -)), pero los permisos del archivo ext4 se perderán si el dispositivo de destino tiene formato vfat, como se describe en oshirowanen. La tarsolución es mejor en este caso.
yuric
6

Creo que taring y luego untaring deberían funcionar tanto en archivos como en directorios.

al alquitrán:

tar cvpfz /target.tar.gz /source/

para deshacer

tar xvpfz /source/

La pbandera significa --preserve-permissions.

Deberías ver man tarpara más información.

mikewhatever
fuente
Acabo de hacer una prueba rápida para estar seguro y -pno es necesario: el alquitrán conserva los permisos de forma predeterminada, al menos cuando el usuario posee los archivos que se archivan / extraen.
sierrasdetandil
2
Es cierto, pero no nos ha dicho qué archivos quería copiar, y no tenía ninguna razón para asumir nada por mi cuenta.
mikewhatever