G'Day,
Estou usando o rsync para sincronizar recursivamente uma árvore de pastas remotas semelhante à seguinte:
/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
Não sei como será a árvore de pastas e que ela mudará com o tempo. Então, o que eu quero poder fazer é recursivamente sincronizar o acima, mas excluir a pasta "cache" e todas as subpastas que ela 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?
Você quer o --exclude
flag. Por exemplo, um rsync local:
rsync -a --exclude cache/ src_folder/ target_folder/
É realmente simples - a regra de exclusão corresponderá a um diretório chamado "cache" em qualquer lugar da sua árvore.
Para obter mais informações, procure "--exclude" e a seção "FILTER RULES" na página de manual do rsync: