rsync фильтрация - PullRequest
       1

rsync фильтрация

0 голосов
/ 05 января 2011

Я использую команду rsync для синхронизации двух каталогов: remote> local

команда (используется в скрипте Python)

os.system('rsync --verbose --progress --stats --recursive\
          --copy-links --times --include="*/" --include="*good_name*.good_ext*"\
          --exclude-from "/myhome/mydir/src/rsync.exclude"\
          %s %s'%(remotepath,localpath))

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

Я хочу включить рекурсивно

any_dir_name/any_file_name.good

, но я хочу исключить все файлы, которые находятся в

bad_dir_name/

, который я использовал--exclude-from и вот мое исключение из файла

*
/*.bad_dir_name/

К сожалению, это не работает.Я подозреваю, что это может иметь какое-то отношение к --include="*/", но если я его удалю, команда вообще не синхронизирует файлы.

1 Ответ

2 голосов
/ 05 января 2011

Я понял. Я использовал -vv, чтобы найти, по какому правилу каталог отображался в списке синхронизации, и так как rsync поддерживает регулярные выражения, Я изменил свой оператор включения с "*/" на

--include="*[^.bad_dir_name]/"

и теперь все отлично работает.

...