いつのまにか、GNU tar が z オプションを付けなくてもいい感じに展開してくれたりしますが(いつの話だ)、 さて、file.tar.gz というファイルがあって、ふつうに tar xvf file.tar.gz とか tvf とかで展開か中味のチェックをします。これがどうやってもうまくいかずに蹴られました。
LANGを変えて二回実行しました、こんな風
$ tar xvf test.tar.gz
tar: これは tar アーカイブではないようです
tar: 次のヘッダをスキップします
tar: 前のエラーにより失敗ステータスで終了します
$
$ LANG=C tar xvf test.tar.gz
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
$
これを一旦 gunzip して、tar xvf test.tar するとうまくいく。
しかし、再度 gzip test.tar して、tar xvf test.tar.gz すると最初と同じ結果。どうして??
途中で気を失いながら、だいぶ調べまくったところ、2010年に報告済みのこの問題と同じ。https://bugzilla.redhat.com/show_bug.cgi?id=589643
本来 test.tar.gz となるファイル作る際に、test.tar という名前で作り、再度 gzip して、test.tar.gz を作ると簡単に再現可能です。
tar cvfz test.tar test/; gzip test.tar
ですね。
原因は、二重にgzipされた tar.gz を tar が展開できないという問題。 確実に悪いのは、二重にzipしたファイルを作った人ですが...。
1 件のコメント:
tar xvf test.tar.gz
じゃなくて
tar xzvf test.tar.gz
じゃないのですか?
コメントを投稿