我从命令提示符运行它:
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 即可获得更多信息。