Se você passar rsync dois caminhos locais, o padrão será usar "--whole-file", e não delta-transfer. Então, o que você está procurando é "--no-whole-file". Você também obtém delta-transfer se você requisitou '-c'.
Veja como você pode verificar:
$ mkdir a b
$ dd if=/dev/zero of=a/1 bs=1k count=64
$ dd if=/dev/zero of=a/2 bs=1k count=64
$ dd if=/dev/zero of=a/3 bs=1k count=64
$ rsync -av a/ b/
sending incremental file list
./
1
2
3
sent 196831 bytes received 72 bytes 393806.00 bytes/sec
total size is 196608 speedup is 1.00
Em seguida, toque em um arquivo e sincronize novamente
$ touch a/1
$ rsync -av --inplace a/ b/
sending incremental file list
1
sent 65662 bytes received 31 bytes 131386.00 bytes/sec
total size is 196608 speedup is 2.99
Você pode verificar se reutilizou o inode com "ls -li", mas notou que ele enviou um total de 64K bytes. Tente novamente com --no-whole-file
$ touch a/1
$ rsync -av --inplace --no-whole-file a/ b/
sending incremental file list
1
sent 494 bytes received 595 bytes 2178.00 bytes/sec
total size is 196608 speedup is 180.54
Agora você enviou apenas 494 bytes. Você poderia usar strace para verificar se algum arquivo foi escrito, mas isso mostra pelo menos a transferência delta usada.
Note (veja os comentários) que para sistemas de arquivos locais, --whole-file
é assumido (veja a man page do rsync). Por outro lado, através de uma rede --no-whole-file
é assumida, então --inplace
por si só se comportará como --inplace --no-whole-file
.