1

У меня есть каталог, загруженный тысячами подкаталогов:

/home/tmp/
          1
          12
          123
          1234
          2345
          234
          3456
          345
          34

Каждый подкаталог, в свою очередь, имеет сотни подкаталогов, которые я хочу rsync, если подкаталог первого уровня соответствует ...

Мне нужен способ копирования /rsync только каталогов, которые начинаются с данной цифры [1-9] ...

То, что я хочу, это то, что позволило бы мне использовать подстановочные знаки, чтобы соответствовать

rsync -rzvvhP remotehost:/home/tmp/1* /home/tmp/

Я хочу, чтобы rsync синхронизировал

/home/tmp/1/
/home/tmp/12/
/home/tmp/123/
/home/tmp/1234/

каталоги и любые дочерние подкаталоги, которые у них есть, но не каталоги первого уровня, начинающиеся с другой цифры ...

/home/tmp/234/
/home/tmp/2345/
........./3*/
........./4*/ etc..

Что я пробовал:

rsync -rzvvhP --exclude='*' --include-from=1.txt remotehost:/home/tmp/ /home/tmp/

где 1.txt содержит:

1
12
123
1234

Когда я делаю это с 2.txt, хотя rsync по-прежнему работает через все каталоги, которые начинаются с 1 и 3 и т.д.

Как я могу сделать это, чтобы у меня была одна команда для rsync только каталогов, которые начинаются с любой данной цифры?

1 ответ1

1

Вы можете попробовать что-то вроде этого для своего шаблона:

/home/tmp/{1,12,123,1234}

{} Генерирует каждый из параметров, разделенных запятыми, поэтому эквивалентно этому:

/home/tmp/1 /home/tmp/12 /home/tmp/123 /home/tmp/1234

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .