どのような状況でgunzip&tar xfは動作しますが、tar xzfは失敗しますか?

どのような状況でgunzip&tar xfは動作しますが、tar xzfは失敗しますか?

これを説明するために:私は会社のウェブサイト。 tar -xzfの使用に失敗します。

$ tar -xzf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.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 -xfを使用すると正常に動作します。

$ gunzip LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz
$ tar -xf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar
# no error

なぜこれが起こるのか教えてくれる人がいますか? - 標準tarコマンドが常に動作するようにしたい。

答え1

何が起こったようですダブル圧縮アーカイブ。

gunzipファイルを実行すると、fileまだgzipアーカイブであることがわかります。名前を再び.gzに変更すると、再圧縮できます。

-z最近、入力がファイルの場合、gnu tarは自動的にこのオプションを追加するようです。したがって、すでに-z一度実行したgunzip後は、オプションなしで機能し、tarが自動的に追加されます。

この動作は情報ページで説明されています。

「圧縮されたアーカイブを読むのははるかに簡単です。GNU `tar」は自動的にそのフォーマットを認識するので、追加のオプションを指定する必要はありません。[...]フォーマット認識アルゴリズムは「署名」に基づいています。のバイト。一部の圧縮形式に固有のファイルの先頭です。

これは、§8.1.1「圧縮アーカイブの作成と読み取り」から得られます。

関連情報