Как rsync файлы с номером имени файла больше, чем число?

Я получил несколько сотен папок, все с одинаковой структурой имен, ## *, мне нужно сделать резервную копию с помощью rsync всех папок в диапазоне от 00 до 15_ на диск и от 16_ до 99_ на другой диск. Как я могу отфильтровать каждый список, чтобы передать это rsync ?.

drwxrwxrwx+ 10 user user 4096 Feb 16 2017 07_MrSmith drwxrwxrwx+ 3 user user 4096 Mar 24 12:55 10_Other_File drwxrwxrwx+ 4 user user 4096 Aug 23 14:33 15_New_Interesting_folder drwxrwxrwx+ 9 user user 4096 Aug 31 17:23 16_SimpleFolderNaming drwxrwxrwx+ 3 user user 4096 May 8 12:53 17_VeryCurious drwxrwxrwx+ 6 user user 4096 Mar 28 12:38 17_MantinanVinil drwxrwxrwx+ 3 user user 4096 Mar 28 11:47 17_AnotherFolderWith_Subfolders 

Я попытался найти параметры команды «find», «xargs» или «rsync», которая позволяет сравнивать подмножества с числами, но я не могу найти решение этого.

  • Удалите все файлы, кроме как в определенном подкаталоге с помощью find
  • Передача подстановочного символа * в скрипт (bash?)
  • Является ли адрес «computer: ///» только что-то символическим или его можно использовать где-то?
  • Продолжает получать файлы сообщений одинаково, используя find
  • Найти «.git» dirs, но игнорировать некоторые пути; или как работает `find -not`
  • Разрешить ограниченный скрипт rsync (rrsync) для произвольных каталогов с авторизованными ключами
  • Когда я делаю:

     find -maxdepth 1 -regextype posix-extended -regex '..[0-1][0-5]_*' 

    для фильтрации папок в пределах диапазона 00-15 ничего не возвращает.

  • С mv, можно установить временную зависимость от файлов mv'ed?
  • Внутреннее расширение с помощью команды find и символа подстановки
  • Должен ли я закончить мои текстовые / скриптовые файлы с помощью новой строки?
  • Как редактировать несколько файлов в VIM?
  • Как найти все файлы .tex в каталогах в Recurse Grep?
  • md5sum для каждого файла (с ll)
  • One Solution collect form web for “Как rsync файлы с номером имени файла больше, чем число?”

    С 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 если любой из glob не соответствует ни одному файлу, и вы можете закончить 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 {} + 
    Linux и Unix - лучшая ОС в мире.