Claro, isso é simples de se fazer com regras de exclusão. Para excluir um diretório e todo o seu conteúdo, apenas exclua o diretório em si, ele nem será percorrido. Para incluir um diretório somedir
, mas não seu conteúdo, ou seja, transferir um diretório vazio, exclua somedir/*
. Quando uma cláusula exclude começa com um /
, é um caminho da raiz do diretório que você está sincronizando.
rsync -a --exclude='/version/photofolder/*' --exclude='anotherfolderwithstupidname/*' htdocs/ elsewhere/
Se você quiser incluir todos os subdiretórios de …/version
, mas não os arquivos que não são de diretório em …/version
e não o conteúdo dos subdiretórios:
rsync -a --include='/version/*/' --exclude='/version/*' htdocs/ elsewhere/
Se você quiser incluir todos os subdiretórios de …/version
e seus conteúdos, mas não os arquivos que não são de diretório em …/version
:
rsync -a --include='/version/*/' --include='/version/*/*' --exclude='/version/*' htdocs/ elsewhere/