Продовжити перерваний к.п.н.


17

Чи можна запустити cpзнову після його переривання і змусити його почати там, де він закінчився минулого разу (не перезаписувати дані, які вже скопійовано, скопіюйте лише те, що залишилося)?

Відповіді:


32

Такі випадки навчили мене користуватися rsyncз самого початку. Однак у вашому випадку ви можете використовувати rsync зараз. Він буде копіювати лише нові дані поперек, у тому числі, якщо вони cpзупиняються на півдорозі через великий файл.

Ви можете використовувати його як CP, наприклад:

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

3
Або --append-verifyпорівнювати контрольні суми в кінці просто для впевненості.
Заз

7

Використовуйте перемикач -u і перегляньте сторінку cp man.


але вихідні файли нічого не змінилися
Phil

1
-u призначений лише для "оновлення" ... тобто: він не зможе перезаписати наявні файли у пункті призначення, якщо вони однакові чи новіші ...
ericslaw

2
Якщо ви використовуєте -u, він знову скопіює той самий великий файл. -u допомагає лише у тому випадку, якщо ви намагаєтесь відновити велику рекурсивну копію.
Рорі

7

У випадку, якщо аборт cpбув рекурсивною копією, ви можете продовжити роботу з rsync, включаючи опцію --recursive.

Приклад

Команда скасованої копії:

cp -r source-directory destination-directory

Припустимо, що це destination-directoryвже існувало, так що ця команда копіювання створила каталог, названий source-directory всередині destination-directory . Це можна відновити за допомогою:

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

Зауважте, що підрядні риски мають точне значення у параметрах шляху rsync.

У цьому випадку команда copy може отримати аргумент source-directoryабо source-directory/це не має значення. У команді rsync, однак, вона повинна бути source-directory без косої риски .


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.