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

6

Em um rsync, estou tentando excluir subdiretórios que correspondem a um padrão. Mas não consigo fazer funcionar. Eu segui vários exemplos encontrados aqui e no Google. Mas não obtenho os resultados corretos. Aqui está a opção bit do meu comando:

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

Minha estrutura de diretórios de origem é

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

Isso faz parte de um script de backup. $ LNK é um link para o destino de rsync do dia anterior.

Eu não quero / root / branch1, / root / branch2, / root / branch3. ou seu conteúdo para ser sincronizado. Mas eles são.

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

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

Obrigado por qualquer ajuda / conselho.

EDIT - para endereçar a bandeira "possível duplicada"

Esta questão diz respeito a uma lista conhecida de diretórios. Eu preciso excluir todos os diretórios que seguem um padrão, mesmo que esses diretórios ainda não existam. i.e. do meu exemplo, outros diretórios chamados /branch* podem ser adicionados. Preciso tornar meu script à prova de futuro e evitar a edição do script quando um diretório que corresponde ao padrão for adicionado, pois esses diretórios podem ser temporários.

    
por Roger Creasy 08.09.2016 / 16:20

1 resposta

2

Você exclui a regra está correta. No entanto, o rsync não excluirá arquivos excluídos no destino sem o parâ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
    
por 08.09.2016 / 16:54

Tags