Seria mais fácil para você fazer todas as cópias idênticas de links de arquivos. Uma maneira de fazer isso é com fdupes : executar fdupes -L
. Em seguida, altere os arquivos no lugar; isso preservará os links físicos.
Se tudo o que você deseja fazer é encontrar um arquivo por nome e conteúdo ou por nome e hash, basta adicionar outra condição ao seu comando find
.
find /target_path/ -iname "original.file" -exec cmp old.file {} -exec cp new.file {}
find /target_path/ -iname "original.file" \
-exec sh -c 'test "$(md5sum | sed "s/ .*//")" = "$1" <"$0"' {} "$(cat old.md5sum)" \
-exec cp new.file {}
Você não diz qual é o seu aplicativo; pode ou não ajudar a envolver uníssono , que can detectar arquivos idênticos em diferentes caminhos ao fazer sincronização remota .