2010 年 3 月 のアーカイブ

rsyncの-Cオプションの指示を上書きする

rsyncの-Cまたは--cvs-excludeオプションって便利ですよね。これは、下記のファイル・ディレクトリを転送対象から外す設定です。

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/ .bzr/

転送すると問題になりがちなファイルを転送対象から外せるので、普段はとても便利です(よく見るとEmacsユーザーにしか影響の無いファイル*.elcも混ざってますね)。でも、「上記のうち*.soだけは転送したい」なんて時はどうすればいいんでしょうか。

解決方法は色々あると思いますが、私はrsyncのオプションに「--include-from=rsync_include.txt」を追加し、rsync_include.txtを下記の内容で作成しました。

*.so

これで-Cにより他のファイルを転送しないままで*.soだけ転送するようにできます。バイナリ配布されている共有ライブラリをデプロイしたい状況で上記のように対処したので、小ネタとして記録しておきます。