Copiando um arquivo apenas quando é mais novo que o destino


36

Como copio um arquivo no Linux somente quando o arquivo que está sendo copiado é mais recente que a versão no destino?

Se o arquivo no destino for mais recente, desejo que a cópia do arquivo não avance.

Respostas:



17

Use rsync

rsync --progress -r -u /from/one/* /to/another/directory

3
Apenas para completar: -rsignifica operação recursiva em subdiretórios e -umanter os arquivos mais novos no destino (= atualização). --progressmostra informações de progresso durante a operação.
Jörg Gottschlich 01/01

6

Você não está dizendo qual shell está usando, então vou assumir ksh:

if [[ file1 -nt file2 ]]; then cp file1 file2; fi

O bash não é mais comum?
Rob

11
@ Rob, sim. Isso funciona também no bash, obviamente. Eu simplesmente não tinha o bash (ou qualquer caixa padrão do Linux) em mãos quando o escrevi.
Kusalananda 29/09

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.