【问题标题】:rsync include rules refuse to workrsync 包含规则拒绝工作
【发布时间】:2016-04-05 00:11:01
【问题描述】:

我对此进行了相当彻底的研究。所谓“有效”的一切都不适合我的情况,所以我想我会在这里问。

我有一个看起来像这样的目录树:

根/ CK1E/ 3DConformers/ 其他的东西/ PDE4B/ 3DConformers/ 其他的东西/ ...

我正在尝试使用 rsync 命令从每个项目中检索“3DConformers”子目录。

我发出以下形式的命令:

rsync -avz user@host:/path/to/root/ . --exclude "*" --include-from rules -v -v

我无法获得通用规则,因此我决定使用特定规则,重点关注“CK1E”子目录。我阅读了关于 rsync 是否需要/需要前导斜杠或尾随斜杠的相互矛盾的报告,因此我采用了霰弹枪方法。我当前的规则文件如下所示:

/CK1E /CK1E/ /CK1E/3DConformers /CK1E/3DConformers/ /CK1E/3DConformers/* CK1E CK1E/ CK1E/3DConformers CK1E/3DConformers/ CK1E/3DConformers/*

我从 rsync 得到以下输出。请注意,“CK1E”目录仍然被忽略!

接收增量文件列表 [发件人] add_rule(- *) [发件人] add_rule(+ /CK1E) [发件人] add_rule(+ /CK1E/) [发件人] add_rule(+ /CK1E/3DConformers) [发件人] add_rule(+ /CK1E/3DConformers/) [发件人] add_rule(+ /CK1E/3DConformers/*) [发件人] add_rule(+ CK1E) [发件人] add_rule(+ CK1E/) [发件人] add_rule(+ CK1E/3DConformers) [发件人] add_rule(+ CK1E/3DConformers/) [发件人] add_rule(+ CK1E/3DConformers/*) server_sender 起始 pid=2451269 [发件人] make_file(.,*,0) recv_file_name(.) ... [发件人] 隐藏目录 CK1E 因为模式 * ... 收到 1 个名字 recv_file_list 完成 发送文件列表完成 get_local_name 计数=1 。 发电机启动 pid=27883 启用增量传输 recv_generator(.,0) recv_generator(.,1) 生成文件阶段=1 recv_files(1) 开始 发送文件开始 send_files(0, /path/to/root/.) recv_files(.) 发送文件阶段=1 recv_files 阶段=1 生成文件阶段=2 发送文件阶段=2 recv_files 阶段=2 发送文件完成 总计:匹配=0 hash_hits=0 false_alarms=0 数据=0 recv_files 完成 生成文件阶段=3 generate_files 完成 发送 212 字节 接收 1578 字节 275.38 字节/秒 总大小为 0 加速为 0.00 _exit_cleanup(code=0, file=main.c, line=1505): 即将调用exit(0)

帮忙?!

【问题讨论】:

    标签: include rsync rules


    【解决方案1】:

    包含/排除规则的顺序很重要:与文件匹配的first包含/排除规则是最重要的。

    您的第一条规则是--exclude="*",因此您排除了所有内容。您需要重新排序您的规则,以便您的包含规则匹配之前您的全部排除规则。

    这个命令应该可以工作:

    rsync -avz user@host:/path/to/root/ . \
          --include "/CK1E/" \
          --include "/CK1E/3DConformers/" \
          --include "/CK1E/3DConformers/*" \
          --exclude "*"
    

    您需要添加中间目录以及文件,因为如果您没有明确提及它们,则全部排除规则将匹配它们,并且如果直接被排除,那么内容也是如此。

    \ 不是命令的一部分;它们只是表示行继续;当您剪切和粘贴时,您的 shell 会做正确的事情。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 2019-03-10
      • 1970-01-01
      • 2020-08-16
      • 2014-09-13
      • 2021-02-26
      相关资源
      最近更新 更多