справка с (условное выражение?) rsync исключают

Я хочу исключить/bar/из rsync, но только когда в папке,/foo/.

Если я использую - исключают '/foo/bar /', он будет только работать, когда rsync будет выполнен на foos родительском каталоге, но в нашей установке, я не могу сделать этого.

Если я использую - исключают '/bar / ', он исключит все/bar/подкаталоги, включая/fee/bar/, например.

То, что я хочу сделать, только исключают/bar/, когда целевой каталог является/foo/

Действительно ли это возможно в rsync?

Или у меня должен быть некоторый сценарий обертки, который вставляет исключить правило, для которого он предназначается, / нечто/?

0
задан 05.05.2011, 06:15

0 ответов

От rsync(1) страница справочника, "ВКЛЮЧАЮТ/ИСКЛЮЧАЮТ ПРАВИЛА ШАБЛОНА":

   o      if the pattern starts with a / then it is anchored to a particu-
          lar spot in the hierarchy of  files,  otherwise  it  is  matched
          against the end of the pathname.  This is similar to a leading ^
          in regular expressions.  Thus "/foo" would match a name of "foo"
          at  either  the "root of the transfer" (for a global rule) or in
          the merge-file’s  directory  (for  a  per-directory  rule).
0
ответ дан 27.11.2019, 17:46

Посмотрите следующий отрывок, нечто / плохой и панель / плохой создается как директора с некоторым файлом в них, если Вы просто исключаете их использующий "*foo/bad" затем каждый 'плохо' (файл или dir) содержавшийся в нечто / плохой будет проигнорирован.

e@lap:/tmp$ mkdir -p source/foo/bad source/bar/bad target
e@lap:/tmp$ touch source/foo/bad/a.txt source/bar/bad/a.txt
e@lap:/tmp$ rsync -vr --exclude "*/foo/bad" source target/
sending incremental file list
source/
source/bar/
source/bar/bad/
source/bar/bad/a.txt
source/foo/

sent 153 bytes  received 47 bytes  400.00 bytes/sec
total size is 0  speedup is 0.00
0
ответ дан 27.11.2019, 17:46

Теги

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