使用 rsync,如何从传输中排除特定的隐藏目录和所有子目录

使用 rsync,如何从传输中排除特定的隐藏目录和所有子目录

我正在尝试 rsync 一些数据并排除名为“.snapshots”的目录。因此,源路径如下:

/a/b/theDirectory/

它包含以下内容:

/a/b/theDirectory/.snapshots/

我想 rsync 这个,但是选项如

rsync -avvA --exclude /a/b/theDirectory/.snapshots /a/b/theDirectory/ <destination> 

不起作用,仍然包含 .snapshots 目录。我尝试过双引号和单引号;转义,在末尾\.放置 a ;在末尾放置或,但都失败了。/*/*

我唯一能够做到的事情就是使用,--exclude '.snapshots' 但是这会带来一些我无意排除的风险(如果在目录层次结构的其他级别存在“.snapshots”)。

有人可以给出建议吗?

非常感谢

答案1

你只需要以“/”开头的排除过滤器模式:

--exclude /.snapshots

参见手册页讨论:

模式匹配规则

A pattern that starts with a / is anchored to the start of the transfer path

相关内容