Você pode fazer isso com regras de inclusão / exclusão. Algo como (não testado):
rsync -a --include=*/foo/*** --exclude=* user@remote:/usr/ /foo-1.2.3/usr
O ***
é introduzido em rsync 2.6.7
. Sem isso, você precisa de uma inclusão para o diretório ( foo/
) e outra para o conteúdo ( foo/**
). Observe que, quando você usa uma inclusão como essa, precisa ter uma exclusão adequada como a última regra, pois tudo é incluído como padrão e os arquivos são incluídos / excluídos de acordo com a primeira correspondência na lista de regras (colocando --exclude=*
primeiro não copia nada).