Linux / Unixでは、.tar.gzと.zipは重要ですか?


69

クロスプラットフォームプログラムは、Unixバージョンでは.tar.gz、Windowsバージョンでは.zipとして配布される場合があります。これは、それぞれの内容が異なる必要がある場合に意味があります。

ただし、コンテンツが同じになる場合は、ダウンロードが1つだけの方が簡単です。Windowsは、そのまま使用できる形式であるため、.zipを好みます。Unixでは問題になりますか?つまり、今日、Ubuntu Linuxでファイルを解凍してみましたが、うまくいきました。現在のUnixライクなオペレーティングシステムでこれに何か問題がありますか、それとも.zipファイルを全面的に提供しても大丈夫ですか?

回答:


28

ネクロマンシング。
はい、それは重要です。
実際、それは依存します。

tar.gz

  • UNIXファイル属性を格納します:uid、gid、permissions(特に実行可能)。デフォルトはディストリビューションに依存し、オプションで切り替えることができます。
  • アーカイブするすべてのファイルを1つのファイルに統合します(「テープアーカイブ」)。
  • 実際の圧縮は、1つの.tarファイルでGZIPによって行われます

zip

  • MSDOS属性を格納します。(アーカイブ、読み取り専用、非表示、システム)
  • 各ファイルを個別に圧縮し、個別に圧縮されたファイルを1つのファイルに統合します
  • ファイルの最後にファイルテーブルを含める

zipはファイルを個別に圧縮するため、zipアーカイブのサイズはおそらく大きくなります(特に多くの小さいファイルの場合-構成ファイルを考えてください)。

Linux / Unixで多数のファイルをzipしてから解凍すると、ファイル属性がなくなります(少なくともMS-DOSでサポートされていないものは、ZIPによって異なります) -使用するソフトウェア)。これは重要な場合もそうでない場合もありますが、その場合は重要ではありません(ファイルサイズの違いはほとんどの場合無視できるためです)。


10
Unixライクなシステムのzipの標準ディストリビューション(info-zip)には、unixファイル属性も保存されます。
エリックアロネスティ

35

tar gzは、スクリプトの「実行可能ファイル」などの権限を保持するため、Linux / Unixに適しています。


8
OS Xのアーカイブユーティリティとzip / unzipはアクセス許可を保持しますが、そうでない他のユーティリティがあるかもしれません。
-Lri

4
標準のzip / unzipツール(info-zip)は、Linuxでは許可を保持し、Windowsではタイムスタンプを保持します。参照:典型的な機能についてはen.wikipedia.org/wiki/Info-ZIPを参照してください。望ましいランダムアクセスと編集可能なアーカイブプロパティを保持しながら、権限の問題とファイルサイズの制限を克服します。
エリックアロネスティ

33

最近の最も人気のあるLinuxディストリビューションは、デフォルトでzip互換性を備えています。しかしとしてnc3bで述べた、targzipのLinux / Unixシステムでより一般的です。これらのシステムで95%の互換性が必要な場合は、との使用tarを検討してくださいgzip。必要なのが85%のみの場合は、問題ありzipません。


2
さて、95%は85%よりも優れています:-)非常に小さな質問です。ファイル拡張子が.tar.gzではなく.tgzであるかどうかはまったく問題ですか?
-rwallace

8
拡張機能はまったく問題ではなく、ユーザーとプログラムが参照するためだけに使用されます。拡張子が.XXXで、拡張子が.tarであることがわかっている場合でも、tarを使用して展開できます。.tgzと.tar.gzはどちらも実際には同じ拡張子であり、これらの拡張子を持つファイルは似ています。
ブラッドフィリア

2
一方、Windowsで100%の互換性を確保するには、cabを使用する必要があります。
kinokijuf

3
tarは、UNIXシステムの+ xなどのuid、gid、およびアクセス許可を格納します。zipは、アーカイブ、読み取り専用、非表示、システムをWindowsシステムに保存します。
アンドリューデアンドラーデ

1
@mtakあなたは常にだけ使用することができますgunzip --suffix .zip npm-debug.log.zipgunzip -c < npm-debug.log.zip > npm-debug.log
イワンAucamp

19

tar / gzipは、アーカイブ全体を解凍することなく、アーカイブにランダムにアクセス、更新、検証、または追加することさえできないため、かなり安っぽい形式です。

zipはその点ではるかに優れています。...zipファイルの内容をすばやく取得したり、最初の部分を再圧縮せずに追加したりできます。

zipには、使用する「zip」のバージョンに応じて、サイズ制限があります...これらは問題になる可能性があります。しかし、ほとんどのlinux-like osに付属している標準のinfo-zipツールにはサイズの制限はなく、ファイルのアクセス許可は問題なく保持されます。

参照:機能についてはhttps://en.wikipedia.org/wiki/Info-ZIP


どのような制限について話しているのですか?
14

編集してリンクを提供
エリックアロネスティー

9

Barebones Unixのインストールにはunzipが含まれていません(つまり、サーバーのインストール)が、常にtargzipが含まれています。あなたの聴衆がサーバーなら、私はgzipに行きます。

また、gzipzipよりも圧縮率が高いため、ファイルは小さくなります。


1
gzipはZIPよりも圧縮率が高いとは言いません。どちらも同じDEFLATEアルゴリズムを使用しており、これまでに行ったすべての比較では、ファイルサイズに関して同様の結果が得られます。
-grawity

4
まあ、tar.gzはファイル全体を一度に圧縮しますが、zipはファイルを個別に圧縮します。多くの小さなファイルでは、ファイル全体で冗長性を使用できるため、通常、最初のアプローチでは著しく小さいファイルが生成されます。しかし、違いはそれほど大きくありません。
-sleske

3

はい、それは重要です。タールはアーカイバです。また、tar.gzでは、そのアーカイブを圧縮します。

Zipはアーカイバでありコンプレッサーでもあります。

私の経験から、圧縮を比較すると、gzipはzipよりもはるかに優れています。

そして、他の重要な違いは別の答えで言及されています。非常に大きなファイルアーカイブがあり、小さなファイルを抽出したい場合は、Zipを使用できます。ただし、tar.gzでは、アーカイブ全体を抽出する必要があります。


gzip圧縮されたファイルのアーカイブではなく、アーカイブされたファイルのgzipです。そのため、アーカイブ全体を抽出する必要があります。
m93a

2

基本的にこれらの決定は次のとおりです。

  • GZIPは、ファイルの実行が許可されているため、Unix ファイルのアクセス許可を保持します。

  • 一方、ZIP はWindows でそのまま使用できます


1

tarおよびgzip* nix-esでは、よりもはるかに一般的ですunzip。例えば、私のarch-2009.08には現時点ではありませんunzip


6
ただし、ZIPを適切に処理するbsdtar(の一部libarchive)があります。
荒廃

おっと: ">それについて知らなかった。ありがとう!:-)
nc3b
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.