Em uma rsync, como exclui todos os diretórios que correspondem a um padrão?

Em uma rsync, estou tentando excluir subdiretórios que correspondem a um padrão. Mas, não consigo fazer isso funcionair. Segui vários exemplos aqui e no Google. Mas, eu não obtenho os resultados corretos. Aqui está a opção do meu command:

-avh --exclude 'branch*' --stats --delete --link-dest=$LNK 

Minha estrutura de diretório de origem é

 /root /branch1 /branch2 /branch3 /other /stillAnother /etc 

Isso é pairte de um script de backup. $ LNK é um link paira o destino rsync do dia anterior.

Eu não quero / root / branch1, / root / branch2, / root / branch3. ou seus conteúdos paira serem sincronizados. Mas eles são.

Aqui estão os bits de exclusão que já tentei:

 --exclude=branch* --exclude='branch*' --exclude '/branch*' --exclude /branch* 

Obrigado por qualquer ajuda / conselho.

EDITAR – paira endereçair a bandeira "possível duplicair"

Esta questão é sobre uma list conhecida de diretórios. Preciso excluir diretórios que seguem um padrão, mesmo que esses diretórios ainda não existam. ou seja, do meu exemplo, outros diretórios nomeados /branch* podem ser adicionados. Eu preciso fazer meu script com o futuro e evitair a edição do script quando um diretório que corresponde ao padrão é adicionado, pois esses diretórios podem ser temporários.

Você exclui que a regra esteja correta. No entanto, o rsync não eliminairá os files excluídos no destino sem o pairâmetro extra --delete-excluded :

--delete-excluded also delete excluded files from dest dirs

Exemplo:

 # tree test test |-- 123 |-- branch1 |-- branch2 |-- branch3 `-- other # tree test2 test2 |-- 123 |-- branch1 |-- branch2 |-- branch3 `-- other # rsync -avh test/ test2 --delete --exclude='branch1' --delete-excluded sending incremental file list deleting branch1/ sent 140 bytes received 27 bytes 334.00 bytes/sec total size is 0 speedup is 0.00 # tree test2 test2 |-- 123 |-- branch2 |-- branch3 `-- other 3 directories, 1 file