com zsh
:
rsync ... <0-15>_*(/) somewhere
rsync ... <16->_*(/) somewhere-else
Com ksh
ou bash -O extglob
ou zsh -o kshglob
:
rsync ... @(0[0-9]|1[0-5])_* somewhere
rsync ... @(1[6-9]|[2-9][0-9])_* somewhere-else
Ou você poderia fazê-lo em globs separados (embora você veja mensagens de erro de rsync
se qualquer uma das glob não corresponder a nenhum arquivo e você possa acabar com os arquivos rsyncing que são chamados literalmente 0[0-9]_*
, 1[0-5]_*
...):
rsync ... 0[0-9]_* 1[0-5]_* somewhere
rsync ... 1[6-9]_* [2-9][0-9]_* somewhere-else
(observe que bash
e ksh
não suportam o qualificador (/)
glob para selecionar apenas arquivos do tipo diretório).
POSIXly:
find . ! -name . -prune \( -name '0[0-9]_*' -o -name '1[0-5]_*' \) \
-type d -exec sh -c 'exec rsync ... "$@" somewhere' sh {} +
find . ! -name . -prune \( -name '1[6-9]_*' -o -name '[2-9][0-9]_*' \) \
-type d -exec sh -c 'exec rsync ... "$@" somewhere-else' sh {} +