Como rsync apenas alguns arquivos em alguns diretórios

5

Estou tentando sincronizar todos os arquivos *.jpg de /var/www/data/models/days/ + alguns outros diretórios de /var/www/data root.

Eu faço:

rsync -az --delete --include='/models' --include='*.jpg' --exclude='*' $SRC::/var/www/data /var/www/data mas não sincroniza nada. O que estou fazendo errado?

OBSERVAÇÃO: não quero alterar a origem ou o destino para incluir / models / days, pois preciso de outros diretórios com a mesma correspondência de nome de arquivo ( *.jpg ).

    
por skrat 07.05.2013 / 14:07

2 respostas

4

Você incluiu /models no percurso, mas nenhum de seus subdiretórios. Se um diretório é excluído, o rsync não o percorre, então nenhum conteúdo pode ser incluído.

Use --include='*/' para incluir todos os subdiretórios e -m para não copiar diretórios que acabariam vazios. Para obter mais informações, consulte Filtro Rsync: copiando somente um padrão

    
por 13.05.2013 / 03:25
0

Sua opção --include precisa levar em conta os nomes dos subdiretórios principais. Tente usar **.jpg : o operador ** específico do rsync compara barras com outros caracteres.

    
por 07.05.2013 / 14:14

Tags