tarが.zipファイルを解凍できないのはなぜですか? [閉鎖]

tarが.zipファイルを解凍できないのはなぜですか? [閉鎖]

を使用してzipファイルを抽出するためにほとんどの形式(gzipなど)を試しましたが、tarGoogleにイライラしたときを使用してzipファイルを抽出する方法がなく、またはを使用することを提案するだけであることがわかりtarました。実際、私のLinuxシステムにはユーティリティも1つしかありません(なぜこれが主に推奨されるオプションなのか疑問に思います)。もちろん、うまくいき問題が解決しましたが、zipファイルを抽出できないのはなぜですか?たぶんzipとサポートされている圧縮方法の違いが何であるか尋ねるべきですか?zipunzipzipunzipunziptartar

答え1

UNIXの哲学はガジェットを持つことです。ツールは1つのことを行い、それを非常にうまく行います。

このtarツールは、圧縮なしで複数のファイルを1つにマージします。

このgzipツールは個々のファイルのみを圧縮します。

両方のツールを使用したい場合は、両方のツールを組み合わせて単一の.tar.gzファイルを生成するだけです。


このzipツールはまったく異なるものです。複数のファイルをインポートして圧縮ファイルに結合します。まったく異なるアルゴリズムを使用します。


ツールを使用してすべてを管理するには、以下を使用しますatoolたくさん形式を検出し、正しいツールを呼び出してさまざまな形式を認識します。

答え2

簡単に言えば、tar GNUツールは誰も気にしないので、zip /圧縮解除をパイプしません。

長い物語、オリジナルサイズ:

tarもともとは、ファイルを解凍して圧縮するのではなく、複数のファイルを1つの大きなファイルとして保持することです。人々はファイルをアーカイブするだけでなく圧縮したいので、tarデータストリーム入力を受け入れ、結果をファイルに保存するコンプレッサーを介して出力をパイプするだけです。利益!

今、これらの作業をできるだけ簡単にするために、生成されたtarファイルをgzip、lzmaなどの圧縮ツールに内部的にパイプすることにしました。このツールは、各形式の特別なフラグによって実行時に有効になりますtar。そのため、破損したファイルを抽出しようとすると、次の代わりtarにデフォルトのツールエラーが表示されますtar

$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file

tarしたがって、zipファイルを解凍できないわけではありません。誰もtarそれを実装しようとしていなかったので、正しいツールを使用してファイルを転送する能力がないということです。 zipはすでにtarファイルのファイルアーカイブ機能を実行していますが、tarがそれをサポートする理由はありません。

これですべてを圧縮/圧縮解除できるオールインワンツールがあり、それを真にサポートするには正しいツールが必要です。それらがなければ、ツールは失敗します。

答え3

ファイルtar自体は、テープアーカイブ用に特別に設計されたファイル形式です。その後、この形式は(たとえば)またはgzip圧縮形式を使用して圧縮できます。bzip2圧縮されたtarファイルを抽出すると、実際に解凍され、圧縮されていないファイルtarから元のファイルが抽出されます。

ファイルを抽出すると、ファイルはzipなく、tar元のファイルのみが含まれます。したがって、tarこのプロセスに参加する理由はまったくありません。

ファイルを生成できるように(関連なし)gzipまたはそれ自体を使用してファイルを圧縮することもできます。これらのファイルを解凍するときは、代わりにまたはを使用してください。bzip2ziptargunzipbunzip2tar

答え4

「あるものは現状のままで、私たちはそれを受け入れなければならない」という答えが私にも効果がなかったので、私はちょっと掘り下げてみました。 (新しいことを学ぶのはいつも良いことではありませんか?)

したがって、問題は、これらのツールの目的がどこにあり、何であるかのようです。

私が見つけたものを説明し、不必要に混乱を引き起こすのではなく(難読化のために怒っている)、次の記事をチェックしてください。 http://www.difference Between.net/technology/difference- Between-zip-and-gzip/

私はtarにzipサポートが組み込まれている可能性があると思いましたが、アプローチは明らかに根本的に異なります。あるいは、誰かが他のアーカイブツールと圧縮ツールのファイルを管理するためにこのアーカイブツールを使用する理由を考えることができます(または2つの元のコーダー間に議論があり、zipがアプリケーションの境界を超えないように禁止コマンドが発行された可能性があります。はい、私は冗談です。

関連情報