rsyncで指定したファイルだけを同期する


備忘録。ググると、「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オプションは名前とは裏腹に、「除外」だけではなく「包含」の指定も出来る。この例では各種拡張子のファイルと、中身が空のディレクトリ「*/」を「包含」指定し、最後に、それ以外を全て除外- *」している。

コメントを残す