web-dev-qa-db-fra.com

Copier des fichiers sans perdre les autorisations de fichiers / dossiers

Comment copier des fichiers/dossiers d'un ordinateur Ubuntu sur un système de fichiers ext4 vers un autre ordinateur Ubuntu se trouvant également sur un système de fichiers ext4, à l'aide d'une clé USB utilisant un système de fichiers vfat sans perdre les autorisations d'accès?

J'ai essayé la base ctrl-c à partir de l'ordinateur source, puis ctrl-v à usb, puis ctrl-c à partir de usb, puis ctrl-v sur l'ordinateur cible, et aucune des autorisations de fichier/dossier n'est conservée.

36
oshirowanen

Vous pouvez créer une archive tar de la source, la copier sur un autre ordinateur à l'aide du lecteur USB et l'extraire à cet emplacement. Tar conserve les autorisations de fichiers.

1 - Sur l'ordinateur source:

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

2 - Copiez put_your_name_here.tar.gz sur le lecteur USB puis sur l’autre ordinateur

3 - Sur l'ordinateur de destination:

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

tar va recréer la structure de dossiers archivée avec toutes les autorisations intactes.

Ces commandes vont archiver le conten du dossier source, puis les extraire dans le dossier de destination. Si vous souhaitez copier le dossier lui-même, vous devez alors, à l'étape 1:

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

Le même mécanisme pourrait être utilisé pour des fichiers uniques.


Si vous pouvez vous connecter d'un ordinateur à l'autre en utilisant ssh, @siddharthart answer (rsync) pourrait être plus pratique.

56
sierrasdetandil

Vous pouvez essayer rsync avec l'indicateur -a pour conserver toutes les autorisations lors de la copie. Je ne suis pas au courant d'une solution plus simple, mais je l'avais utilisée pour un but dans le passé.

Rsync offre un support brillant pour la copie répétée, la mise à jour de dossiers, etc., tout en restant extrêmement rapide.

11
SiddharthaRT

Je pense que tarer puis décompresser devrait fonctionner à la fois pour les fichiers et les répertoires.

to tar:

tar cvpfz /target.tar.gz /source/

unar:

tar xvpfz /source/

L'indicateur p signifie --preserve-permissions.

Vous devriez voir man tar pour plus d'informations.

6
mikewhatever