如何正确匹配目录与 rsync

Posted

技术标签:

【中文标题】如何正确匹配目录与 rsync【英文标题】:How to properly match directories with rsync 【发布时间】:2016-09-08 23:27:22 【问题描述】:

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

其实比较简单,因为我也知道这个mononly作为目录的后缀出现(层次结构相当僵化),所以我试着做 p>

rsync --dry-run -vrlpt --include='*/' --include='**/*mon/' --exclude='*' --prune-empty-dirs

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

是的,我确实看到了 this 和 this 和 this 以及无数其他人,这帮助我取得了一些进展(即您在上面看到的),但没有解决问题......

【问题讨论】:

【参考方案1】:

在第二个包括中,类似以下的内容(即问题是匹配 mon 之后的任何内容):

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

【讨论】:

以上是关于如何正确匹配目录与 rsync的主要内容,如果未能解决你的问题,请参考以下文章

如何将 MQ 服务器回复消息与正确的请求相匹配

如何更改年龄不匹配的 PDB 以正确匹配?

如何在 7 段图像上正确进行模板匹配?

从 Amazon S3 创建表时,Athena 如何将数据与正确的字段匹配?

如何重新格式化 CSV 文件以匹配正确的 CSV 格式

如何正确地配置Gradle版本