Weiter abgebrochene cp


17

Ist es möglich, das cpProgramm nach dem Abbruch erneut auszuführen und an der Stelle zu starten, an der es zuletzt geendet hat (Daten, die bereits kopiert wurden, nicht überschreiben, sondern nur die verbleibenden Daten kopieren)?

Antworten:


32

Es sind Fälle wie diese, die mir rsyncvon Anfang an beigebracht haben . In Ihrem Fall können Sie jedoch jetzt rsync verwenden. Es werden nur neue Daten kopiert, auch wenn sie cpauf halbem Weg durch eine große Datei gestoppt wurden.

Sie können es wie folgt verwenden:

rsync --append /where/your/copying/from /where/you/want/to/copy

3
Oder --append-verifyum am Ende die Prüfsummen zu vergleichen, nur um sicherzugehen.
Zaz

7

Verwenden Sie die Option -u, und lesen Sie die Manpage cp.


aber Quelldateien haben sich nicht geändert oder so
Phil

1
das -u ist nur für 'update' ... dh: es überschreibt nicht die vorhandenen
dateien im ziel,

2
Wenn Sie -u verwenden, wird dieselbe große Datei erneut kopiert. -u hilft nur, wenn Sie versuchen, eine große rekursive Kopie fortzusetzen.
Rory

7

Falls der Abbruch cpeine rekursive Kopie war, möchten Sie möglicherweise mit rsync und der Option fortfahren --recursive.

Beispiel

Kopierbefehl abgebrochen:

cp -r source-directory destination-directory

Nehmen wir an, destination-directorybereits vorhanden, so dass dieser Kopierbefehl ein Verzeichnis erstellt mit dem Namen source-directory innerhalb destination-directory . Dies kann fortgesetzt werden über:

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

Beachten Sie, dass abschließende Schrägstriche in rsync-Pfadoptionen eine genaue Bedeutung haben.

In diesem Fall könnte der Befehl copy das Argument erhalten haben, source-directoryoder source-directory/es macht keinen Unterschied. Im Befehl rsync muss dies jedoch der Fall seinsource-directory Schrägstrich angehängt werden .


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.