Ferramentas unidirecionais como o rsync funcionam muito bem quando você quer fazer o B parecer A, mas são menos úteis quando você quer fazer o A e B para ser o mesmo, mas não o mesmo que A ou B. Quando preciso sincronizar as árvores de diretórios, eu gosto de Uníssono Ele tem uma interface gráfica agradável que permite ver as diferenças entre as árvores e faz sugestões baseadas em carimbos de data e hora sobre qual é o mais recente (que nem sempre é o que você deseja manter). Ele também tem opções para fazer backup de ambas as cópias de qualquer arquivo diferente para que nada seja perdido.
Ao sincronizar com o rsync, você pode informá-lo para manter a versão mais recente dos arquivos e, em seguida, sincronizar SRC para DEST e DEST para SRC. O problema é que o rsync não tem como detectar conflitos onde o arquivo foi alterado tanto no SRC quanto no DEST e você simplesmente obterá a versão mais recente. Unison mantém o controle do que mudou. Se o arquivo foi alterado em apenas um lugar, você obtém a versão mais recente, mas se o arquivo foi alterado nos dois locais, você receberá um aviso sobre o conflito e, em seguida, terá a chance de lidar com ele manualmente.
Em termos de arquivos "duplicados", o fslint é um ótimo utilitário para identificar arquivos que são idênticos, além do nome e das permissões . O índice gráfico faz decidir quais duplicatas você realmente quer e quais você não deseja.