rsync の読む .cvsignore は source DIR のもの

rsync は -C オプションで CVS ディレクトリや .cvsignore に書かれているものなど CVS と同じルールで、コピーの際にファイル、ディレクトリ群を無視することができる。

なんだけど、この .cvsignore の動作がよく分かっていなかったようで、ちゃんと無視されずに転送されてしまうことがあった。

man rsync より

             then,  files  listed in a $HOME/.cvsignore are added to the list
             and any files listed in the CVSIGNORE environment variable  (all
             cvsignore names are delimited by whitespace).

             Finally, any file is ignored if it is in the same directory as a
             .cvsignore file and matches one of the patterns listed  therein.
             Unlike rsync's filter/exclude files, these patterns are split on
             whitespace.  See the cvs(1) manual for more information.


  • ホームディレクトリの .cvsignore
  • コピー対象となっているディレクトリにある .cvsignore

の中に記されているファイル、ディレクトリ群が exclude される。