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タスクに変えちゃえばいいか」などと最初にバッドノウハウを思いついてしまう僕は,まだまだ修業が足りない。

このエントリーをはてなブックマークに追加

関連記事

Firebase FunctionsデプロイでArtifact Registryのクリーンアップポリシー設定エラーに遭遇した話

Web Serial APIでブラウザからシリアルデバイスを操作する

ウェブブラウザとハードウェアの関係

macOSやLinuxからWindowsに移行したら快適になった話

「エンジニアチームの生産性の高め方」という書籍が出版されました