Eu li estes tópicos:
- rsync --delete --files-from = list / dest / não exclui arquivos indesejados
- Excluir arquivos estranhos do diretório dir via rsync?
Mas, tanto quanto posso dizer (talvez esteja faltando alguma coisa), eles não cobrem a seguinte pergunta:
Como você pede rsyncpara copiar arquivos e excluir aqueles no lado de recebimento que não existem no lado de envio, com exceções? (por exemplo, não remova um repositório mercurial .hgno lado de recebimento, mesmo se não houver repositório no lado de envio).
Uma possibilidade?
Empréstimos da resposta de @Richard Holloway abaixo. Digamos que tenho a seguinte linha:
rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path
Até onde eu entendi, essa linha faria rsyncexcluir tudo no caminho de recebimento que não existe no caminho de envio, exceto as coisas correspondentes dont_delete_me. Minha pergunta agora é: o rsync manterá os arquivos no lado de recebimento correspondentes, dont_delete_me mesmo que nada no lado de envio corresponda dont_delete_me?
rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/pathisso nãorsyncexcluiria tudo no caminho de recebimento que não existe no caminho de envio, exceto os itens correspondentesdont_delete_me? Mais importante,rsyncmanteria as coisas no lado receptor correspondidasdont_delete_memesmo que nada no lado de envio correspondadont_delete_me? Se for esse o caso, acho que é a única linha de que preciso, certo?