rsync:在一个分支中排除目录,但在其他分支中不排除

时间:2016-07-07 10:59:42

标签: rsync

我想做一个

rsync master slave

具有以下限制:应排除复制目录master/foo/xxx,但应复制目录master/bar/xxx

我不能写

rsync --exclude xxx master slave

因为这也会排除master/bar/xxx。令我惊讶的是,我也不能使用

rsync --exclude master/foo/xxx master slave

因为它复制BOTH xxx目录(为什么?)。

当然我可以回复写两个rsync:

rsync --exclude xxx master slave
rsync master/bar/xxx slave/bar/xxx

但我想知道这是不是可以做得更简单。

1 个答案:

答案 0 :(得分:1)

正确的命令是:

rsync --exclude /foo/xxx master slave

/开头的包含/排除规则是相对于传输的根目录(而不是文件系统的根目录)。

以其他字符开头的规则与每个文件名的末尾匹配,因此foo/xxx也可以使用,但如果目录中的其他位置有foo,则可能与您不期望的目录匹配树。

你的命令工作,因为“master”不在传输的根目录中。

相关问题