だらだら〜個人事業〜

HatenaDiaryから引っ越してきました。Githubもnyakagawanです。

rsync覚書

.svnフォルダとその他大勢のフォルダ&ファイルは除外(Exclude)したいけど、一部のフォルダとその中のファイルだけは同期(Include)したい。
これをやるのに手間取った(というか出来てると思ってたらできてなかった)のでメモ。

状況

/root
 -misc
 -data
 -src
   -files...
   -directories...
   -hoge
     -files...

この状況でhoge/の中のfiles(たくさんのファイル)だけを同期したい。んで、すべてのディレクトリに存在する.svnフォルダは除外したい。
こう書いた。
rsync --include "- .svn" --include "root/" --include "src/" --include "hoge/" --include "hoge/*" --exclude "*" -av なんちゃらかんちゃら

はじめは.svnを--exclude "*" の後ろとか前とかに持ってきてて、それで何回やってもダメだったので--includeより前にもってきたらおkだった。んで、諸事情でIncludeどの前にExludeオプションを付けるのがアレだったので、"- .svn"でIncludeしてExcludeあつかいに。