Você poderia usar a ferramenta unison
desenvolvida por Benjamin Pierce na U Penn.
Vamos supor que você tenha dois diretórios,
/home/user/Documents/dirA/
e /home/user/Documents/dirB/
Para sincronizar esses dois, você pode usar:
~ $ unison -ui text /home/user/Documents/dirA/ /home/user/Documents/dirB/
Na saída, unison
exibirá cada diretório e arquivo diferente nos dois diretórios solicitados para sincronização. Ele recomendará a sincronização adicional (replicação de arquivos ausentes nos dois locais) na execução inicial, criará e manterá uma árvore de sincronização em sua máquina e, em execuções subseqüentes, implementará a sincronização verdadeira (ou seja, se você excluir um arquivo de .../dirA
, ele também será excluído de .../dirB
.Você também pode comparar todas as mudanças e optar por encaminhar ou reverter a sincronização entre os dois diretórios.
Opcionalmente, para ativar a interface gráfica, simplesmente remova a opção -ui text
do seu comando, embora eu ache o cli
mais simples e rápido de usar.
Mais sobre isso: Tutorial do Unison na documentação do usuário do Unison .