Compare o arquivo existente em dois diretórios diferentes, copie se não existente, sobrescreva-o

1

Estou tentando criar um script que compara um arquivo dentro de diferentes 2 dir. copiá-los de dir1 para dir2 é que não existe no dir2, ou substituí-lo se já existia.

Eu sei que posso usar diff dir1 dir2 , mas como copiar o resultado para dir2. porque o comando diff me dá resultado como only in dir1: file1.txt , pelo que entendi que não é um arquivo em si (certo?)

Para a parte overwrite, decido usar o comando [ -ot ] , mas, novamente, pelo meu entendimento, o [ -ot ] só pode comparar com o arquivo, mas não com o dir?

    
por Prin Puyakul 28.09.2017 / 08:41

2 respostas

2

rsync funciona localmente e testa os timestamps e os tamanhos de arquivo.

rsync --archive /path/to/source/ /path/to/destination/

Você também pode usar rsync em arquivos individuais.

    
por 28.09.2017 / 09:31
1

Por que não cp ?

\cp -f /path/to/dir1/* /path/to/dir2/
    
por 28.09.2017 / 09:42