Respostas:
Há muito mais propriedades para rsync do que a resposta anterior menciona. Você deve examiná-los você mesmo:
man rsync
Mas, para o seu problema, sugiro:
rsync -a --delete X Y
Dessa forma, o receptor (Y) excluirá qualquer arquivo que não esteja no X. Certifique-se de fazer o procedimento corretamente. Usado incorretamente como root, pode facilmente matar o seu sistema ... :)
rsync -a --delete X/ Y
. Essa pequena barra após o X fez com que funcionasse como pretendido para mim, de modo que poderia ajudar outros também. Explicado aqui: abbeyworkshop.com/howto/unix/nix_rsync/index.html
Dê uma olhada no rsync (1) . Ele pretende fazer exatamente o que você deseja.
rsync -av X Y
Ele suporta cópia remota, através de seu próprio protocolo ou ssh, mas também pode ser usado localmente.
Dependendo do comportamento exato desejado, você também pode passar a --update
opção. Isso instruirá o rsync a não substituir arquivos que já existem no destino e são mais novos que os da fonte.
Se você deseja remover arquivos extras (ou seja, arquivos que existem em Y, mas não em X), você pode adicionar a --delete
opção.