如何使用rsync正确匹配目录

如何使用rsync正确匹配目录,rsync,Rsync,我需要将一些目录从一台机器重新同步到另一台机器,但只需要树的一部分。我认为最简单的解释方法是,在服务器上运行tree-f(它打印每个文件的完整路径),然后grep“在完整路径中继续运行,rsynch”只同步grep的匹配项。实际上,我很乐意这样做,但我没有shell访问服务器的权限,只有rsync。基于grepingrsync的输出的两步解决方案--list only是完全可以接受的 它实际上更简单,因为我也知道这个mon只作为目录的后缀出现(层次结构非常严格),所以我尝试这样做 rsync--

我需要将一些目录从一台机器重新同步到另一台机器,但只需要树的一部分。我认为最简单的解释方法是,在服务器上运行
tree-f
(它打印每个文件的完整路径),然后
grep
“在完整路径中继续运行,
rsynch
”只同步
grep
的匹配项。实际上,我很乐意这样做,但我没有shell访问服务器的权限,只有
rsync
。基于
grep
ing
rsync的输出的两步解决方案--list only
是完全可以接受的

它实际上更简单,因为我也知道这个mon只作为目录的后缀出现(层次结构非常严格),所以我尝试这样做

rsync--dry run--vrlpt--include='*/'--include='***mon/'--exclude='*'--prune空目录

但这与任何东西都不匹配。
--include='*mon/'
也一样,而不是带双星号的。避免使用
--prune empty dirs
匹配所有目录,但没有文件,我认为这是我的问题。因此,我尝试在排除模式之前添加一些文件扩展名的include模式(我不希望这样做,因为我不想跟踪它们,它们可能会更改),但这只是匹配所有这些文件,包括不在“mon”树中的文件


是的,我确实看到了无数其他的例子,它们帮助我取得了一些进展(即,你可以看到上面的),但没有解决问题…

第二个例子中的工作如下(即,问题是匹配mon之后的内容):

rsync-arvm-include='*/'-include='*mon/***'-exclude='*'/path/to/source

/path/to/dest

类似于以下内容的内容在第二个示例中执行任务(即,问题是匹配mon之后的内容):

rsync-arvm-include='*/'-include='*mon/***'-exclude='*'/path/to/source
/路径/目的地/目的地