Mesclar dois diretórios e manter os arquivos mais recentes

2

Existe um comando unix para copiar o conteúdo de um diretório para outro, mas preservando sempre os arquivos mais recentes?

Quero dizer, tendo o diretório A e o diretório B, eu preciso copiar o conteúdo de B para A. Se um nome de arquivo no diretório B já existir em A, mantenha o mais novo deles, de acordo com a data de criação.

    
por Esteban Castro 21.12.2017 / 20:46

2 respostas

2

Você pode usar o rsync para sincronizar o conteúdo de dois diretórios. A opção -u/ --update tem o efeito

skip files that are newer on the receiver

Você pode usar rsync -auvh dir1/ dir2/

-a = modo de arquivo. Permite uma carga completa de opções, como recursão.

-v e -h são opções detalhadas e legíveis por humanos. Não é vital, mas útil para ver o que está acontecendo.

Eu sugiro que você execute qualquer comando rsync primeiro com a opção —dry-run para poder verificar resultados inesperados.

    
por 21.12.2017 / 20:56
3

Você pode usar cp simples, com esta opção:

-u, --update
       copy only when the SOURCE file is newer than the destination file
       or when the destination file is missing

Se houver arquivos mais recentes espalhados em cada diretório, você poderá executar cp uma vez de cada diretório, copiando apenas os arquivos mais novos sobre os mais antigos.

    
por 21.12.2017 / 20:53

Tags