Você pode usar uma estrela dupla para simplificar os includes:
rsync -axW --exclude="*" --include="**/.[CHh]" --include "**/*.?pp" ...
Eu quero copiar os arquivos de código-fonte de um sistema de arquivos remoto para o servidor local. As extensões do arquivo de código-fonte são *.? Pp, *. [CHh].
Como posso executar um rsync para copiar a hierarquia do sistema de arquivos remoto e os arquivos de código-fonte, excluindo tudo o mais (binários, bibliotecas, objetos, arquivos de repositório ...)?
PS: Eu usei esta linha horrível até agora, deve haver uma solução mais fácil:
$ rsync --include "*/" --include="*/*" --include="*/*/*" --include="*/*/*/*" --include="*.[CHh]" --include="*.?pp" --exclude="*" -axW user@remote/my/remote/dir ./