Windows 上の rsync で -r が機能しないのはなぜですか?

Windows 上の rsync で -r が機能しないのはなぜですか?

コマンドプロンプトからこれを実行しています: 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 を使用せずにcygwin/bin使用できるようになりましたrsync。これにより、他の多くの問題が発生していました。

ようやく動作するようになったので、 内のファイルを変更すると にmyfolderアップロードされますplace。ただし、上記のコマンドでさらにネストされたファイルを編集すると、myfolderそれらに対しては機能しません。

編集core深さの問題ではなく、この特定のフォルダー「It」には、正常に同期している他のすべてのフォルダーと同じ権限があることが 判明しました。

答え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/

ディレクトリが違反したルールは、core2 行目の末尾にあります。

答え2

すべて削除して、クロスポストされたとおりに挿入します。myfolder/ から末尾の / を削除すると、ディレクトリ全体がコピーされます。ただし、myfolder は内部に残ります。-r が機能しない理由がわかりません。

さらに詳しい情報を得るには、-vv を入力してください。

関連情報