Очевидно, обновление моего ядра до 4.4 устранило проблему.
Сzsh
:
rsync... <0-15>_*(/) somewhere
rsync... <16->_*(/) somewhere-else
С ksh
или bash -O extglob
илиzsh -o kshglob
:
rsync... @(0[0-9]|1[0-5])_* somewhere
rsync... @(1[6-9]|[2-9][0-9])_* somewhere-else
Или вы можете сделать это в отдельных глобах (, хотя вы увидите сообщения об ошибках из rsync
, если какой-либо из глобусов не соответствует ни одному файлу, и вы можете закончить -rsyncing файлы, которые вызываются буквально 0[0-9]_*
, 1[0-5]_*
...):
rsync... 0[0-9]_* 1[0-5]_* somewhere
rsync... 1[6-9]_* [2-9][0-9]_* somewhere-else
(обратите внимание, что bash
и ksh
не поддерживают квалификатор (/)
glob для выбора только файлов типа каталога ).
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 {} +