Copie os arquivos no Linux, evite a cópia se existirem arquivos no destino

21

Eu preciso copiar uma pasta / home / user de um disco rígido para outro. Tem 100.000 arquivos e cerca de 10G de tamanho.

eu uso

cp -r /origin /destination

às vezes recebo alguns erros devido a links quebrados, permissões e assim por diante. Então, corrijo o erro e preciso recomeçar a cópia.

Eu me pergunto como eu poderia dizer o comando "cp", uma vez que ele tenta copiar novamente, para não copiar arquivos novamente se eles existirem na pasta de destino.

    
por flow 11.03.2010 / 16:59

6 respostas

15
cp -R -u -p /source /destination
    
por 11.03.2010 / 17:02
18

Use apenas cp -n <source> <dest> .

Da página de manual :

-n, --no-clobber

do NOT overwrite an existing file (overrides a previous -i option)

    
por 25.01.2017 / 14:45
16

rsync -aq /src /dest

Além de copiar apenas arquivos mais recentes, ele copiará somente as partes mais novas dos arquivos, caso o arquivo tenha sido alterado. Ele é destinado a copiar em links de rede onde você deseja minimizar a quantidade de dados, mas também funciona muito bem no local.

    
por 11.03.2010 / 17:12
4

Procure a opção "-u" para o comando cp .

    
por 11.03.2010 / 17:01
1

Você deve estar copiando como root para manter permissões / propriedade

# cp -au

Veja também o rsync

    
por 11.03.2010 / 17:09
1

Todas as respostas acima estão corretas, mas se você estiver fazendo isso de forma recursiva,

você deve fazer:

 cp -rn SOURCE_PATH DESTINATION_PATH
    
por 08.07.2018 / 06:58

Tags