![tarが.zipファイルを解凍できないのはなぜですか? [閉鎖]](https://linux33.com/image/40478/tar%E3%81%8C.zip%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%A7%A3%E5%87%8D%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
を使用してzipファイルを抽出するためにほとんどの形式(gzipなど)を試しましたが、tar
Googleにイライラしたときを使用してzipファイルを抽出する方法がなく、またはを使用することを提案するだけであることがわかりtar
ました。実際、私のLinuxシステムにはユーティリティも1つしかありません(なぜこれが主に推奨されるオプションなのか疑問に思います)。もちろん、うまくいき問題が解決しましたが、zipファイルを抽出できないのはなぜですか?たぶんzipとサポートされている圧縮方法の違いが何であるか尋ねるべきですか?zip
unzip
zip
unzip
unzip
tar
tar
答え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
またはそれ自体を使用してファイルを圧縮することもできます。これらのファイルを解凍するときは、代わりにまたはを使用してください。bzip2
zip
tar
gunzip
bunzip2
tar
答え4
「あるものは現状のままで、私たちはそれを受け入れなければならない」という答えが私にも効果がなかったので、私はちょっと掘り下げてみました。 (新しいことを学ぶのはいつも良いことではありませんか?)
したがって、問題は、これらのツールの目的がどこにあり、何であるかのようです。
私が見つけたものを説明し、不必要に混乱を引き起こすのではなく(難読化のために怒っている)、次の記事をチェックしてください。 http://www.difference Between.net/technology/difference- Between-zip-and-gzip/
私はtarにzipサポートが組み込まれている可能性があると思いましたが、アプローチは明らかに根本的に異なります。あるいは、誰かが他のアーカイブツールと圧縮ツールのファイルを管理するためにこのアーカイブツールを使用する理由を考えることができます(または2つの元のコーダー間に議論があり、zipがアプリケーションの境界を超えないように禁止コマンドが発行された可能性があります。はい、私は冗談です。