Как 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 -maxdepth 1 -regextype posix-extended -regex '..[0-1][0-5]_*' 

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

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 {} + 
  • Перезаписать символическую ссылку оригинальным файлом
  • Различное значение хэша большого файла rsynced на centos и ubuntu?
  • rsync рекурсивно с определенной глубиной подпапок
  • rsync: пропустить файлы, для которых у меня нет разрешений
  • Копирование большого дерева с одной машины на другую, сохранение права собственности
  • Почему rsync не использует дельта-переводы для одного файла по сети?
  • Как работает опция -fuzzy для rsync?
  • Автоматически копировать определенную папку с каждой удаленной машины на главную машину
  • Имейте rsync уважать файлы btrfs copy-on-write
  • Удаленная синхронизация RSnapshots
  • Как избежать рекурсивного обхода каталога для синхронизации двух каталогов?
  • Linux и Unix - лучшая ОС в мире.