Sem uma opção de exclusão, as "regras por diretório" são relevantes apenas no lado do envio, portanto, você pode se sentir à vontade para excluir os arquivos de mesclagem sem afetar a transferência. Por exemplo:
rsync -av --filter='dir-merge /.rsync-filter' --exclude=.excl host:src/dir /dest
rsync -av --filter='dir-merge /.rsync-filter' host:src/dir /dest
--filter='dir-merge /.rsync-filter' This tells rsync to look for per-directory .rsync-filter files that have
been sprinkled through the hierarchy and use their rules to filter the files in the transfer. If -F is repeated, it is a shorthand for this rule:
No entanto, se você quiser fazer uma exclusão no lado do recebimento E quiser que alguns arquivos sejam excluídos, você precisa ter certeza de que o lado de recebimento sabe quais arquivos excluir. A maneira mais fácil é incluir os "arquivos de mesclagem por diretório" na transferência e usar --delete-after, porque isso garante que o lado de recebimento receba as mesmas regras de exclusão do lado de envio antes de tentar excluir qualquer coisa:
rsync -avF --delete-after host:src/dir /dest
No entanto, se os arquivos não fizerem parte da transferência, você precisará especificar algumas regras de exclusão globais (ou seja, especificadas na linha de comando) ou precisará manter seus próprios arquivos por diretório no lado do recebimento. Um exemplo do primeiro é este (suponha que os arquivos .rules remotos se excluam):
rsync -av --filter='remote .rules' --filter='remote /my/extra.rules'
--delete host:src/dir /dest
No exemplo acima, o arquivo extra.rules pode afetar ambos os lados da transferência, mas (no lado de envio) as regras são subservientes às regras mescladas dos arquivos .rules porque foram especificadas após a mesclagem por diretório regra.
Em um exemplo final, o lado remoto está excluindo os arquivos .rsync-filter da transferência, mas queremos usar nossos próprios arquivos .rsync-filter para controlar o que é excluído no lado do recebimento. Para fazer isso, devemos excluir especificamente os arquivos de mesclagem por diretório (para que eles don (cqt sejam excluídos) e, em seguida, colocar regras nos arquivos locais para controlar o que mais não deve ser excluído. Como um desses comandos:
rsync -av --filter=':e /.rsync-filter' --delete \
host:src/dir /dest
rsync -avFF --delete host:src/dir /dest