Na documentação do rsync:
Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time.
Além disso, quando a origem e o destino são locais, rsync
é executado com a opção --whole-file
por padrão.
-W, --whole-file
With this option rsync’s delta-transfer algorithm is not used and the whole file is sent as-is instead. The transfer may be faster if this option is used when the bandwidth between the source and destination machines is higher than the bandwidth to disk (especially when the "disk" is actually a networked filesystem). This is the default when both the source and destination are specified as local paths, but only if no batch-writing option is in effect.
Não tenho certeza, mas parece que você pode querer a opção --checksum
.
-c, --checksum skip based on checksum, not mod-time & size
Observe que isso requer a leitura dos arquivos de origem e de destino do disco para calcular a soma de verificação.
Mais sobre isso: