61 votes

Copier des fichiers sous Linux, éviter la copie si les fichiers existent dans la destination

Je dois copier un dossier /home/user d'un disque dur à un autre. Il contient 100 000 fichiers et pèse environ 10 Go.

J'utilise

cp -r /origin /destination

Je reçois parfois des erreurs dues à des liens brisés, des autorisations, etc. Je corrige alors l'erreur, et je dois recommencer la copie.

Je me demande comment je pourrais dire à la commande "cp", une fois qu'elle essaie de copier à nouveau, de ne pas copier à nouveau les fichiers s'ils existent dans le dossier de destination.

145voto

Balmipour Points 1629

Il suffit d'utiliser cp -n <source> <dest> .

Von page de manuel :

-n, --no-clobber

ne PAS écraser un fichier existant (remplace une option précédente -i)

43voto

user31894 Points 2591

cp -R -u -p /source /destination

En -u ( o --update ) fait exactement cela :

Extrait de la page de manuel de cp :

-u, --update

copie uniquement lorsque le fichier SOURCE est plus récent que le fichier de destination ou lorsque le fichier de destination est manquant.

25voto

keiw Points 315

rsync -aq /src /dest

En plus de ne copier que les fichiers les plus récents, il ne copiera même que les parties les plus récentes des fichiers si le fichier a été modifié. Il est destiné à la copie sur des liaisons réseau où vous souhaitez minimiser la quantité de données, mais il fonctionne aussi très bien en local.

4voto

Brad The App Guy Points 13329

Recherchez l'option "-u" pour le programme cp commandement.

4voto

Kamil Maciorowski Points 57004

Solution POSIX

D'autres réponses utilisent -u または -n options de cp . Aucun des deux n'est requis par POSIX et ne l'est pas non plus rsync d'une autre réponse ; il n'est pas non plus yes utilisé dans l'un des commentaires.

Nous pouvons encore reproduire yes n avec un while boucle. Cela conduit à la solution POSIX suivante :

while true; do echo n; done | cp -Ri /origin /destination 2>/dev/null

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X