O Rsync só se abstém de copiar um arquivo se achar que a cópia na árvore de destino é idêntica à cópia na árvore de destino. Por padrão, ele pressupõe que os arquivos são idênticos se tiverem o mesmo tamanho e a mesma hora de modificação. Você pode passar a opção -c
para fazer o rsync calcular uma soma de verificação (que é muito mais lenta, já que tem que ler o arquivo inteiro na árvore de destino). Você pode passar a opção --size-only
para fazer arquivos rsync skip cujo tamanho é o mesmo em ambos os lados, o que é perigoso, pois os arquivos cujo conteúdo foi alterado, mas onde a nova versão tem o mesmo tamanho que os antigos, serão ignorados.
Suspeito que na primeira vez que você fez a cópia, você não preservou os timestamps (por exemplo, usou cp -r
em vez de cp -rp
ou cp -a
). Se foi isso que aconteceu, o rsync não tem como saber que os arquivos têm o mesmo conteúdo. Quando a execução de rsync -a
for concluída, os arquivos terão os mesmos timestamtps, portanto, o rsync saberá que não os copiará novamente.
Também é possível que os timestamps não sejam os mesmos porque o sistema de arquivos de origem e o sistema de arquivos de destino usam granularidade diferente para timestamps (por exemplo, segundo vs. microssegundo, portanto, um arquivo tem um tempo de modificação como 2014-12-10 08:54 : 32.123465 no lado da fonte, mas 2014-12-10 08:54:32 = 2014-12-10 08: 54: 32.000000 no lado do destino). Se esse for o caso e o rsync não detectá-lo automaticamente, passe a opção --modify-window
, por ex. --modify-window=1
para permitir uma tolerância de 1 segundo em registros de data e hora.