rsync
include / exclude / filter podem ser difíceis de trabalhar, mas são muito flexíveis. Aqui está uma maneira de fazer o que você quer:
rsync --include-from=- /xapp/parsX/parsapp/object/ dest_dir <<EOF
- getbackdate*autosys.sh
- parssendevent*.sh
+ *.sql
+ *.pl
+ *.sh
- *
EOF
O --include-from
faz rsync
ler os padrões de stdin
, sem isso você poderia especificar cada padrão como uma opção --include
ou --exclude
separada. Você também pode colocar as regras em um arquivo e especificar o nome ou usar -F
para fazer com que rsync
procure por um arquivo .rsync-filter
em cada diretório que lê.
Note também que a ordem dos padrões também é significativa. Os arquivos são incluídos / excluídos de acordo com o primeiro padrão correspondente. Além disso, a regra - *
no final é necessária para incluir as regras de trabalho, já que tudo está incluído por padrão. No entanto, isso pode ser problemático com transferências recursivas, uma vez que exclui todos os diretórios não incluídos explicitamente. Uma maneira de contornar isso é incluir uma regra + **/
para incluir todos os diretórios.