Question : Récemment, j'ai dû copier un grand nombre de fichiers occupant un espace de stockage de 7 To vers un autre emplacement sur ma boîte CentOS. J'ai utilisé la commande 'cp', mais pour une raison quelconque (peut-être un problème de réseau), la commande s'est arrêtée après avoir copié quelques fichiers et répertoires. Maintenant, si je reprends l'opération de copie, la commande recommence à copier les fichiers qui ont déjà été copiés (ce qui prend à nouveau beaucoup de temps et de CPU). Donc ma question est, puis-je dire 'cp ' commande pour ignorer les fichiers et répertoires qui ont déjà été copiés (afin que je puisse économiser du temps et du processeur). Des suggestions ?
Réponse : Vous pouvez utiliser soit 'cp ‘ ou ‘rsync ‘ pour copier des fichiers.
Solution1 :Premièrement, nous allons voir la commande CP :
cp -u --force <src> <dst>
Ici –u copie un fichier uniquement si le fichier SOURCE est plus récent que le fichier de destination ou lorsque le fichier de destination est manquant.
Remarque : Dans le cas où la commande ci-dessus affiche l'invite ci-dessous :
cp : overwrite '<filename>'
Ensuite, le 'cp ‘ serait un alias avec un mode interactif ! Pour trouver l'alias de 'cp', tapez la commande ci-dessous :
# type cp
cp is aliased to `cp -i'
Comme il est interactif, il est invité à fournir une entrée utilisateur même si vous avez spécifié –force option. Pour éviter ce qui précède et effectuer une copie non interactive, utilisez le chemin absolu de la commande cp comme indiqué ci-dessous :
/usr/bin/cp -u --force <src> <dst>
Solution 2 :Utilisation de la commande rsync :
# rsync -av --ignore-existing<src> <dst>
Remarque :rsync créera une liste de fichiers à l'avance. Si votre source a un grand non. de fichiers, puis rsync prend des heures et des heures et des heures pour créer une si grande liste de fichiers ! et vous pourriez penser que le processus s'est bloqué, ajoutez plutôt -p option et vous verrez une barre de progression et vous n'avez vraiment pas à penser que rsync est suspendu !