Kontynuuj przerwanie cp


17

Czy można cpponownie uruchomić po przerwaniu i uruchomić go tam, gdzie skończył się ostatni raz (nie nadpisywać danych, które już zostały skopiowane, tylko kopiować to, co pozostało)?

Odpowiedzi:


32

Takie przypadki nauczyły mnie używania rsyncod samego początku. Jednak w twoim przypadku możesz teraz użyć rsync. Skopiuje tylko nowe dane, w tym jeśli zostanie cpzatrzymany w połowie dużego pliku.

Możesz go używać tak jak cp, w ten sposób:

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

3
Lub, --append-verifyaby się upewnić, porównać sumy kontrolne na końcu.
Zaz

7

Użyj przełącznika -u i zobacz stronę podręcznika systemowego cp.


ale pliki źródłowe się nie zmieniły ani nic
Phil

1
-u służy tylko do „aktualizacji” ... tzn .: nie zastąpi istniejących plików w miejscu docelowym, jeśli są one takie same lub nowsze ...
ericslaw

2
Jeśli użyjesz -u, to ponownie skopiuje ten sam duży plik. -u pomaga tylko wtedy, gdy próbujesz wznowić dużą rekurencyjną kopię.
Rory

7

W przypadku, gdy przerwana cpkopia była rekurencyjna, możesz chcieć wznowić pracę z rsync, włączając opcję --recursive.

Przykład

Polecenie przerwania kopiowania:

cp -r source-directory destination-directory

Załóżmy, że destination-directoryjuż istniał, więc to polecenie kopiowania utworzyło katalog o nazwie source-directory wewnątrz destination-directory . Można to wznowić poprzez:

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

Zauważ, że końcowe ukośniki mają dokładne znaczenie w opcjach ścieżki rsync.

W takim przypadku polecenie kopiowania mogło otrzymać argument source-directorylub source-directory/nie robi to różnicy. Jednak w komendzie rsync musi być source-directory bez ukośnika końcowego .


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.