微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法获取rsync排除选项以排除目录

一个与rsync的问题。 我使用rsync作为荣耀的cp命令。 我在脚本中有以下代码

rsync -aL --exclude /path/to/exclude/ --exclude='.*' /source/ /destination

我可以得到rsync来排除任何隐藏的文件。 因此'.*'我不能得到排除目录排除。 我试过使用'='标志,用双引号括起来,用单引号。 任何帮助将不胜感激。 提前致谢。

两行文件间的区别

通过在Windows XP x64上使用JScript执行.hta文件,“访问被拒绝”

期望 – 中断程序 – Ctrl + C

打开它后,编辑目录中的每个文件

Ruby中shell命令的颜色输出

脚本来重命名文件

查找Python脚本所需的模块

bash – 最后一个特定字符后的expression

如何在某些“if”语句中使用Windows版本标题以确定要检查哪些Windows更新?

在windows cmd脚本中添加%TIME%variables

mkdir -p test/a/b/c/d/e mkdir -p test/dest rsync -nvraL test/a test/dest --exclude=a/b/c/d

这工作。 由于test/a是同步的基本目录,排除模式是通过以a/

告诉我们真正的路径/排除,如果这没有帮助。

使用-vn运行rsync将列出目录/文件 – 模式与rsync打印的格式相匹配。

其实这些都不是十分准确的

Erik说这是一半的权利

由于test / a是同步的基本目录,排除模式是通过以/

确实,排除模式的是test/a (即pattern /some/path绑定到test/a/some/path ),但这不是全部。

从手册页:

如果模式以/开始,则它锚定到文件层次结构中的特定位置,否则将匹配路径名的结尾。 这与正则表达式中的前导^类似。 因此,“/ foo”会在“传输根目录”(全局规则)或合并文件目录(对于目录规则)中匹配名为“foo”的文件

我们可以忽略per-directory位,因为它不适用于我们这里。

因此, rsync -nvraL test/a test/dest --exclude=a/b/c/d将绝对排除test/a/b/c/d (和子项),但它也将排除test/a/other/place/a/b/c/d 。

rsync -nvraL test/a test/dest --exclude=/b/c/d将排除test/a/b/c/d (和子项)( test/a是指向哪个/被锚定)。

这就是为什么如果你想排除备份的特定路径 ,你仍然需要锚定首字母缩写。 这可能看起来像一个小细节,它会是这样的排除模式变得更具体(例如, Pictures与home/daniel/Pictures ),但它可能会来咬你的屁股。

按照Erik的例子,你想这样做:

rsync -nvraL test/a/ test/dest --exclude=/b/c/d

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐