Você pode manipular arquivos movidos e renomeados com rsync se os sistemas de arquivos no diretório de origem e de destino tiverem suporte para links físicos. A ideia é deixar o rsync reconstruir links antes da transferência real. Você pode encontrar uma boa explicação aqui
Acabamos com uma solução simples que cria uma árvore oculta de hard links dentro do diretório source / target, o script básico poderia ser assim:
# Name of hidden directory
Shadow=".rsync_shadow"
# do real sync
rsync -ahHv --stats --no-inc-recursive --delete --delete-after "$Source"/ "$Target"
# update/create hidden dir of hard links in source
rsync -a --delete --link-dest="$Source" --exclude="/$Shadow" "$Source"/ "$Source/$Shadow"
# update/create hidden dir of hard links in target
rsync -a --delete --link-dest="$Target" --exclude="/$Shadow" "$Target"/ "$Target/$Shadow"
Eu tenho um script de exemplo no GitHub . Mas eu aconselho você a fazer uma grande quantidade de testes antes de usar este método na produção.