web-dev-qa-db-ja.com

tar.gzファイルを抽出すると、「これはtarアーカイブのようには見えません」と返されます。

Tar.gzファイルがあり、それをterminalを使って解凍したいのです。 tar tvzf ldtp_3.5.0.orig.tar.gztar -xvzf ldtp_3.5.0.orig.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

Fileコマンドの出力は、そのgzipファイルを示しています。

$ file ldtp_3.5.0.orig.tar.gz 
ldtp_3.5.0.orig.tar.gz: gzip compressed data, from Unix

それを右クリック - >抽出を使って抽出することができますが、私は端末を使ってそれをしたいです。誰もがそれを行う方法を教えてもらえますか?

24

あなたが実際にそれを解凍することができるという事実と相まってあなたが見ているエラーを見ることはファイルが本物のTAR/Gzipアーカイブであると言うが、おそらく即時のTARはGzipの後に作られない。

つまり、これをWebサーバーからダウンロードした場合、コンテンツのダウンロードを高速化するために、Gzip圧縮がサーバーレベルでWebコンテンツに適用されることがあります。しかし、このようにすでに圧縮されているコンテンツを無視するようにサーバー上で正しく設定されていないと、誤ってGzipファイルを二重にする可能性があります。

それを念頭に置いて、何が起きるのかを確認するために、単にコマンドラインからGzipを解除するだけでよいのです。このようなコマンドを使用してください。

gzip -d ldtp_3.5.0.orig.tar.gz

そして、結果のファイルが何であるかを見てください。そのコマンドを実行した後、私は変な感じをします。ディレクトリにldtp_3.5.0.orig.tarは表示されず、むしろソースのような名前のファイルldtp_3.5.0.orig.tar.gzが表示されますが、おそらく変更が変更されたでしょうか?もしそうであれば、それは本当にダブルGzipされています。そのため、この時点で(最初のGzipの解凍後)、次のようにしてtarコマンドを実行できます。

tar -xvzf ldtp_3.5.0.orig.tar.gz

そしてそれは今完全なTARアーカイブを適切に解凍するべきです。

この2ステップのプロセスに似た別の方法は、gzipの出力を次のようにtarにパイプ処理することです。

gzip -dc ldtp_3.5.0.orig.tar.gz | tar -xvzf -

コマンドの最後にあるc内のgzip-が重要です。

  • cgzipオプションは、gzipに標準出力ストリームへの解凍を指示します。
  • tarコマンドの最後にある-は、「標準入力を使用する」という意味です。したがって、gzip内の-cと組み合わせると、パイプはgzipからパイプされた標準出力ストリームをtar内の標準入力に接続します。
33
JakeGould