2

我将 rsync 与“--files-from”一起使用,并且我想排除此列表中的一个路径以由过滤器“保护”,但它似乎不起作用。

这是我的设置:

/backuplist.txt 文件的内容:

path1
path2/and/more

rsync 命令是这样的:

rsync -aHr --filter "protect path1/*" $dry --progress --delete --force --inplace --delete-after --files-from=/backuplist.txt /source /target

我想要的是从'/source/path1'和'/source/path2/and/more'递归地复制文件到'/target/path1'和'/target/path2/and/more'。目标路径中存在的源路径中不存在的所有内容都应删除,但“/target/path1”中的任何文件除外(!)

我尝试了以下不起作用的过滤器:

--filter "protect path1/*"
--filter "protect path1/"
--filter "protect path1"
--filter "protect /path1"

欢迎任何帮助!

4

1 回答 1

8

感谢您的输入,但在阅读和测试之后,我找到了解决方案:

而不是这个:

--filter "protect path1/*"

它一定要是:

--filter "protect path1/**/*"

它在一个 rsync 调用中就像一个魅力。

于 2013-10-10T07:55:10.290 回答