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 rsync
para 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 .hg
no 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 rsync
excluir 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/path
isso nãorsync
excluiria tudo no caminho de recebimento que não existe no caminho de envio, exceto os itens correspondentesdont_delete_me
? Mais importante,rsync
manteria as coisas no lado receptor correspondidasdont_delete_me
mesmo que nada no lado de envio correspondadont_delete_me
? Se for esse o caso, acho que é a única linha de que preciso, certo?