Se eu criar dois diretórios com o mesmo nome, mas com tempos de modificação diferentes:
$ mkdir -p dir1/dir ; sleep 2 ; mkdir -p dir2/dir
$ stat -c %y dir*/dir
2021-09-15 10:54:55.000819360 +0100
2021-09-15 10:54:57.007490593 +0100
E então use rsync
com a --size-only
opção:
$ rsync -rtvh --size-only dir1/ dir2/
sending incremental file list
./
dir/
sent 72 bytes received 23 bytes 190.00 bytes/sec
total size is 0 speedup is 0.00
Não espero que nada mude, porque os tamanhos são os mesmos. No entanto, o tempo de modificação de dir2/dir
é alterado:
$ stat -c %y dir*/dir
2021-09-15 10:54:55.000819360 +0100
2021-09-15 10:54:55.000819360 +0100
Isso também acontece com arquivos quando os tamanhos são idênticos.
Por que está fazendo isso?
Isso também acontece se um diretório contém muitos dados (outros diretórios e arquivos aninhados). O diretório está realmente sendo substituído ou o rsync está apenas atualizando o timestamp?
O Rsync está simplesmente atualizando os metadados (somente) para corresponder conforme você solicitou com o
-t
sinalizador.Se você olhar o manual (tipo
man rsync
) leia leia a descrição:O
--size-only
sinalizador apenas altera esse algoritmo de "verificação rápida", não pula completamente os arquivos: