rsync过滤

时间:2011-01-05 18:12:01

标签: unix rsync

我使用rsync命令同步远程> 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 个答案:

答案 0 :(得分:2)

我明白了。我使用-vv来查找目录在同步列表中显示的规则,因为rsync支持正则表达式, 我将包含声明从"*/"更改为

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

现在一切正常。

相关问题