Как сделать rsync файлов с номером имени больше числа?

Очевидно, обновление моего ядра до 4.4 устранило проблему.

1
05.09.2017, 00:39
1 ответ

С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 {} +
1
27.01.2020, 23:44

Теги

Похожие вопросы