A ordem das opções --include
e --exclude
é relevante.
Você está primeiro incluindo todos os arquivos *.pdf
, a exclusão posterior de *web*.pdf
nunca se aplica por causa disso. Observe também que os padrões de inclusão / exclusão se aplicam a nomes de nós (arquivos, diretórios, etc.) e não a nomes de caminhos, a menos que você tenha um /
ou **
no padrão; portanto, excluir *web*.pdf
não excluiria ...web.../...pdf
de qualquer maneira.
Se você quiser todos os PDFs, mas não os que estão em diretórios correspondentes a *web*
, isso deve funcionar:
rsync -rv --exclude "*web*/" --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/
Isso evitará que o rsync recursivo em diretórios correspondentes a *web*
, inclua todos os arquivos *.pdf
, inclua todos os outros diretórios, exclua todos os outros arquivos.
Usar **
no padrão também pode funcionar, embora eu prefira a solução acima:
rsync -rv --exclude "**web*.pdf" --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/