tarのエントリは100文字まで?
自宅のサーバのバックアップスクリプトを作成しようとして,Antのビルドスクリプトを着々と書いていた。特にCVSのリポジトリは多くのファイルがあるため,tar形式でファイル群を1つにまとめようと思い,tarタスクを書いた。
…
…
いざ実行してみると,ほとんどのファイルがtarに入れられず,エラーになってしまった。
[tar] Entry: yoichiro.eclipse.plugins.translationview/src/〜/internal/ui/messages.properties,v longer than 100 characters.
どうやら「100文字超えてるぞ」というエラーのようだ。
実は,由緒正しい古いtarコマンドは,100文字を超えるエントリを扱うことができなかったらしい。とはいえ,最近のtarコマンドはしっかり100文字以上のエントリを扱えるのだが,tarコマンドと言ってもGNUのtarコマンドに限られる。GNU独自仕様ということだ。
その辺をAntのtarタスクはちゃんと考慮していて,しっかりとlongfile属性によって制御できるようになっている。
「 Tarタスク」 - JaJakarta
longfile属性に”gnu”という値を指定してあげれば,100文字以上のエントリに対してもエラーとならずに扱うことができるようになる。
…
…
「tarタスクはダメっぽいから,zipタスクに変えちゃえばいいか」などと最初にバッドノウハウを思いついてしまう僕は,まだまだ修業が足りない。