Continuar abortado cp

17

É possível executar cpnovamente depois que foi interrompido e começar onde terminou da última vez (não sobrescrever dados que já foram copiados, apenas copiar o que ainda resta)?

Phil
fonte

Respostas:

32

São casos como este que me ensinaram a usar rsyncdesde o início. No entanto, no seu caso, você pode usar o rsync agora. Ele copiará apenas novos dados, inclusive se for cpinterrompido na metade de um arquivo grande.

Você pode usá-lo como cp, assim:

rsync --append /where/your/copying/from /where/you/want/to/copy
Rory
fonte
3
Ou --append-verifypara comparar somas de verificação no final apenas para ter certeza.
Zaz
7

Use a opção -u e consulte a página de manual do cp.

Sven
fonte
mas arquivos de origem não mudou nem nada
Phil
11
o -u é para 'update' única ... ou seja: ele não vai substituir os arquivos existentes no destino , se eles são mesmo ou mais recente ...
ericslaw
2
Se você usar -u, ele copiará o mesmo arquivo grande novamente. -u só ajuda se você estiver tentando retomar uma cópia recursiva grande.
Rory
7

No caso do abortado cpera uma cópia recursiva, você pode querer continuar com o rsync, incluindo a opção --recursive.

Exemplo

Comando de cópia abortada:

cp -r source-directory destination-directory

Vamos supor que destination-directoryjá existia, para que este comando de cópia crie um diretório nomeado source-directory dentro destination-directory . Isso pode ser retomado via:

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

Observe que as barras à direita têm um significado preciso nas opções de caminho do rsync.

Nesse caso, o comando copy poderia ter recebido o argumento source-directoryou source-directory/, não faz diferença. No comando rsync, no entanto, ele deve ser source-directory sem barra final .

Jan-Philip Gehrcke
fonte