備忘録。ググると、「rsyncで指定したディレクトリを同期する」のはたくさん例があったが、「指定したファイルを同期」は見つからなかったのでちょっと戸惑った。尤も大した違いはない。
rsyncでファイルの(除外)指定を行うときは「--exclude-from
」オプションが便利だ。例えば、Perl(Catalyst)で書いたシステムをごっそりコピーする例。
$ rsync -av --exclude-from=files.conf /old_dir/MyApp/ /new_dir/MyApp/
files.conf
の中身
+ */ + *.pl + *.PL + *.pm + *.yml + *.conf + *.tt + *.ico + *.css + *.js + *.png + *.jpg + *.gif + *.t - *
--exclude-from
オプションは名前とは裏腹に、「除外」だけではなく「包含」の指定も出来る。この例では各種拡張子のファイルと、中身が空のディレクトリ「*/
」を「包含」指定し、最後に、それ以外を全て除外「- *
」している。