Continuer avorté cp

17

Est-il possible de réexécuter cpaprès qu'il a été abandonné et de le faire recommencer là où il s'est terminé la dernière fois (ne pas écraser les données déjà copiées, ne copier que ce qui reste)?

Phil
la source

Réponses:

32

Ce sont des cas comme celui-ci qui m'ont appris à utiliser rsyncdès le départ. Cependant, dans votre cas, vous pouvez utiliser rsync maintenant. Il ne copiera que les nouvelles données, y compris s'il est cparrêté à mi-chemin d'un gros fichier.

Vous pouvez l'utiliser comme cp, comme ceci:

rsync --append /where/your/copying/from /where/you/want/to/copy
Rory
la source
3
Ou --append-verifypour comparer les sommes de contrôle à la fin juste pour être sûr.
Zaz
7

Utilisez le commutateur -u et consultez la page de manuel cp.

Sven
la source
mais les fichiers source n'ont pas changé ou quoi que ce soit
Phil
1
le -u est pour 'mise à jour' seulement ... ie: il n'écrasera pas les fichiers existants dans la destination s'ils sont identiques ou plus récents ...
ericslaw
2
Si vous utilisez -u, il copiera à nouveau le même gros fichier. -u n'aide que si vous essayez de reprendre une grande copie récursive.
Rory
7

Dans le cas où l'avortement cpétait une copie récursive, vous souhaiterez peut-être reprendre avec rsync, y compris l'option --recursive.

Exemple

Commande de copie abandonnée:

cp -r source-directory destination-directory

Supposons que cela destination-directoryexiste déjà, afin que cette commande de copie crée un répertoire nommé source-directory dans destination-directory . Cela peut être repris via:

rsync --recursive --append source-directory destination-directory

Notez que les barres obliques de fin ont une signification précise dans les options de chemin rsync.

Dans ce cas, la commande copy aurait pu obtenir l'argument source-directoryou source-directory/cela ne fait aucune différence. Dans la commande rsync, cependant, il doit être source-directory sans barre oblique de fin .

Jan-Philip Gehrcke
la source