为什么 -r 在 Windows 上对 rsync 不起作用?

为什么 -r 在 Windows 上对 rsync 不起作用?

我从命令提示符运行它: rsync -rltz --executability -C --filter=':- .gitignore' -e "ssh -i /cygdrive/c/Users/dstein/.ssh/id_rsa" myfolder/ [email protected]:/path/to/place

我有PATH指向我的环境的 avriable,cygwin/bin因此我可以rsync在不进入 cygwin 的情况下使用,这导致了许多其他问题。

我终于让它工作了,所以如果我更改了其中的文件,myfolder它会上传到place。但是,如果我编辑任何进一步嵌套的文件,myfolder上述命令对它们不起作用。

编辑 事实证明,问题不是深度,而是这个名为core“它”的特定文件夹具有与所有其他同步良好的文件夹相同的权限。

答案1

看来您的问题出在-C标志上。rsync-C标志是 cvs 排除规则。它会自动忽略符合 CVS 内部排除文件规则的文件。

这些排除来自man rsync(1)

RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state .nse_depinfo *~ #* .#*  ,*  _$*  *$
*.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core 
.svn/ .git/ .hg/ .bzr/

您的目录违反的规则是core第 2 行的末尾。

答案2

让我删除所有内容并插入我们交叉发布的内容。如果您从 myfolder/ 中删除尾随的 /,则整个目录将被复制。但您将在里面找到 myfolder。我不明白为什么 -r 不起作用。

输入 -vv 即可获得更多信息。

相关内容