RSync - Excluindo um subdiretório específico e seus filhos onde o subdiretório existe em diferentes níveis

32

Dia do Pai

Estou usando o rsync para sincronizar recursivamente uma árvore de pastas remotas com a seguinte aparência:

/folderA/a1/cache
/folderA/a1/cache/A1
/folderA/a1/cache/A2
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder/cache
/folderB/cache/
/folderB/b1/somefolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache/B1
/folderB/b1/somefolder/yetanotherfolder/cache/B2

Eu não sei como será a árvore de pastas e isso mudará com o tempo. Então, o que eu quero ser capaz de fazer é recursivamente rsync acima, mas excluir a pasta "cache" e todas as sub-pastas que ele contém, para que eu acabe sincronizando:

/folderA/a1
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder
/folderB/
/folderB/b1/somefolder
/folderB/b1/somefolder/yetanotherfolder/

Alguma sugestão?

    
por TheEdge 13.01.2011 / 09:57

1 resposta

46

Você deseja o sinalizador --exclude . Por exemplo, um rsync local:

rsync -a --exclude cache/ src_folder/ target_folder/

É realmente simples assim: essa regra de exclusão corresponderá a um diretório chamado "cache" em qualquer lugar da sua árvore.

Para mais informações, procure por "--exclude" e a seção "FILTER RULES" na página man do rsync:

link

    
por 13.01.2011 / 10:25

Tags