有一个与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] 举报,一经查实,本站将立刻删除。