Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Include rsync包括拒绝工作的规则_Include_Rsync_Rules - Fatal编程技术网

Include rsync包括拒绝工作的规则

Include rsync包括拒绝工作的规则,include,rsync,rules,Include,Rsync,Rules,我对此进行了彻底的研究。所有被认为“有效”的东西都不适合我的情况,所以我想在这里问一下 我有一个目录树,看起来像: root/ CK1E/ 3DConformers/ OtherStuff/ PDE4B/ 3DConformers/ OtherStuff/ ... 我无法使用一般规则,所以我决定使用特定的规则,重点放在“CK1E”子目录上。我读到了关于rsync是否需要或需要前导斜杠或尾随斜杠的相互矛盾的报告,所以我采用了散弹枪方

我对此进行了彻底的研究。所有被认为“有效”的东西都不适合我的情况,所以我想在这里问一下

我有一个目录树,看起来像:

root/ CK1E/ 3DConformers/ OtherStuff/ PDE4B/ 3DConformers/ OtherStuff/ ... 我无法使用一般规则,所以我决定使用特定的规则,重点放在“CK1E”子目录上。我读到了关于rsync是否需要或需要前导斜杠或尾随斜杠的相互矛盾的报告,所以我采用了散弹枪方法。我当前的规则文件如下所示:

/CK1E /CK1E/ /CK1E/3DConformers /CK1E/3DConformers/ /CK1E/3DConformers/* CK1E CK1E/ CK1E/3DConformers CK1E/3DConformers/ CK1E/3DConformers/* /CK1E /CK1E/ /CK1E/3DConformers /CK1E/3DConformers/ /CK1E/3DConformers/* CK1E CK1E/ CK1E/3DConformers CK1E/3DConformers/ CK1E/3DConformers/* 我从rsync获得以下输出。请注意,“CK1E”目录仍然被忽略

receiving incremental file list [sender] add_rule(- *) [sender] add_rule(+ /CK1E) [sender] add_rule(+ /CK1E/) [sender] add_rule(+ /CK1E/3DConformers) [sender] add_rule(+ /CK1E/3DConformers/) [sender] add_rule(+ /CK1E/3DConformers/*) [sender] add_rule(+ CK1E) [sender] add_rule(+ CK1E/) [sender] add_rule(+ CK1E/3DConformers) [sender] add_rule(+ CK1E/3DConformers/) [sender] add_rule(+ CK1E/3DConformers/*) server_sender starting pid=2451269 [sender] make_file(.,*,0) recv_file_name(.) ... [sender] hiding directory CK1E because of pattern * ... received 1 names recv_file_list done send_file_list done get_local_name count=1 . generator starting pid=27883 delta-transmission enabled recv_generator(.,0) recv_generator(.,1) generate_files phase=1 recv_files(1) starting send_files starting send_files(0, /path/to/root/.) recv_files(.) send_files phase=1 recv_files phase=1 generate_files phase=2 send_files phase=2 recv_files phase=2 send files finished total: matches=0 hash_hits=0 false_alarms=0 data=0 recv_files finished generate_files phase=3 generate_files finished sent 212 bytes received 1578 bytes 275.38 bytes/sec total size is 0 speedup is 0.00 _exit_cleanup(code=0, file=main.c, line=1505): about to call exit(0) 接收增量文件列表 [发件人]添加规则(-*) [发件人]添加规则(+/CK1E) [发件人]添加规则(+/CK1E/) [发件人]添加规则(+/CK1E/3DConformers) [发件人]添加规则(+/CK1E/3DConformers/) [发件人]添加规则(+/CK1E/3DConformers/*) [发件人]添加规则(+CK1E) [发件人]添加规则(+CK1E/) [发送方]添加规则(+CK1E/3DConformers) [发件人]添加规则(+CK1E/3DConformers/) [发件人]添加规则(+CK1E/3DConformers/*) 服务器\发送方启动pid=2451269 [发件人]生成文件(,*,0) 记录文件名(.) ... [sender]由于模式错误而隐藏目录CK1E* ... 收到1个名字 记录文件列表已完成 发送\u文件\u列表完成 获取本地名称计数=1。 发电机启动pid=27883 增量传输已启用 recv_发生器(,0) recv_发生器(,1) 生成文件阶段=1 recv_文件(1)正在启动 开始发送文件 发送_文件(0,/path/到/root/) 记录文件(.) 发送文件阶段=1 recv_文件阶段=1 生成文件阶段=2 发送文件阶段=2 记录文件阶段=2 发送文件完成 总计:匹配项=0哈希\u命中数=0错误\u报警数=0数据=0 记录文件完成 生成文件阶段=3 生成_文件已完成 发送212字节接收1578字节275.38字节/秒 总大小为0加速比为0.00 _exit_cleanup(代码=0,文件=main.c,行=1505):即将调用exit(0)
救命啊

包含/排除规则的顺序很重要:与文件匹配的第一个包含/排除规则才是关键

您的第一条规则是
--exclude=“*”
,因此您排除了所有内容。您需要对规则进行重新排序,以便在“全部捕获排除”规则之前包含规则匹配项

此命令应在以下情况下工作:

rsync -avz user@host:/path/to/root/ . \
      --include "/CK1E/" \
      --include "/CK1E/3DConformers/" \
      --include "/CK1E/3DConformers/*" \
      --exclude "*"
您需要添加中间目录和文件,因为如果不明确提及它们,则catch all exclude规则将匹配它们,如果排除了direct,则内容也将匹配

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

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