Você pode fazer isso, por exemplo,
rsync -rvm --include='*/' --filter='-! pom.xml' SOURCE DEST
-
-r
recurses, -
-v
imprime com detalhes o que acontece, -
-m
remove diretórios vazios (diretórios que não contêm nada após a transferência), -
--include='*/'
informarsync
para incluir explicitamente os próprios diretórios que são excluídos do próximo filtro (esta é uma ressalva que eu estive preso por quantidade vergonhosa de vezes: que os diretórios explicitamente precisa ser permitido em casos como este), -
--filter='-! pom.xml'
exclui arquivos que não não (é o que "!
" faz) correspondem ao padrão (isso incluiria todos os diretórios, sem o padrão--include
acima).
Como eu disse, eu tenho coçado minha cabeça várias vezes sobre o comportamento dos diretórios em regras complexas de filtragem para o rsync, e talvez esteja claro no manual, mas nesse caso eu tenho sido capaz de perder isso por um longo tempo. tempo, então um esclarecimento seria apreciado.