ZIP形式について
ZIPは1989年にPhil Katz氏が考案した、最も広く使われているアーカイブ形式です。複数の圧縮アルゴリズムに対応しており、中でもDEFLATEが最も一般的です。ZIPアーカイブはWindows、macOS、ほとんどのLinuxディストリビューションで、追加ソフトなしに標準対応しています。この形式はファイルごとの個別圧縮に対応しているため、アーカイブ全体を展開しなくても個々のファイルを取り出せます。
ZIPから変換する理由
ZIPはどこでも開けますが、別の形式に変換すると得をすることがあります。当社のテストでは、7Zへの変換でプログラムのバイナリが23%、混在セットが6%小さくなり、長期保存や低速回線で役立ちます。LinuxやUnixの環境なら、TARベースの形式(TAR.GZ、TAR.BZ2、TAR.XZ)に変換すると一般的なソフトウェア配布の慣習に沿い、ファイル権限やシンボリックリンクも保持されます。
適した変換先形式の選び方
最大限の圧縮を優先し、受け取る側が7-Zipまたは互換ソフトを使える場合は7Zに変換しましょう。Linux向けソフトウェアパッケージやWebサーバーへのデプロイ、より速い展開速度が必要な場合はTAR.GZを選んでください。可能な限り小さいファイルサイズが重要な最新のLinuxディストリビューションにはTAR.XZが適しています。GZIPより高い圧縮率が必要でも新しいXZ形式にまだ対応していないUnixシステムにはTAR.BZ2を使ってください。
圧縮性能
DEFLATE圧縮のZIPは、日常使いには圧縮率と速度のバランスが十分に取れています。7ZやTAR.XZが使うLZMA2は、圧縮に時間がかかる代わりにより強く圧縮し、当社のテストではTAR.XZがZIPよりソースコードで37%、プログラムのバイナリで24%小さくなりました。TAR.GZはZIPと同じDEFLATEを使うのでサイズは近く、BZIP2(TAR.BZ2)はDEFLATEとLZMA2の中間です。
ZIPの技術仕様
ZIP形式はアーカイブ内の各ファイルを個別に、独自の圧縮ストリームとして格納します。この設計により、アーカイブ全体を展開しなくても特定のファイルだけを取り出せるため、必要なファイルが一部だけの大きなアーカイブで大きな利点があります。ファイル末尾のセントラルディレクトリにより、アーカイブ全体を読まなくても高速にファイル一覧を取得できます。
2001年に導入されたZIP64拡張により、元々あった4GBのファイルサイズ制限と65,535個のファイル数制限が撤廃されました。現在のZIP実装は、必要に応じて透過的にZIP64をサポートしています。この形式はStore(無圧縮)、Deflate(標準)、Deflate64、BZIP2、LZMA、PPMdなど複数の圧縮方式に対応していますが、Deflateが最も広く互換性のある選択肢であることに変わりありません。
ZIP形式のままにすべき場合
技術に詳しくない相手や、どんな環境か分からない相手とファイルを共有する場合、ZIPは今でも最適な選択肢です。主要なOSはすべて、追加ソフトなしにZIPファイルをネイティブに開けます。メール添付やWebダウンロード、文書共有のどの場面でもZIPは問題なく機能します。大きなアーカイブから特定のファイルだけを取り出したい相手にとって、この形式のランダムアクセス性は貴重です。
Microsoft Officeの文書や、ZIPをネイティブのアーカイブ形式として使うソフト(DOCX、XLSX、PPTXは内部的にはすべてZIPファイルです)を扱う場合はZIPのままにしておきましょう。Java JARファイルやAndroidのAPKパッケージもZIPベースであるため、これらの技術に関わる開発作業ではZIPツールが欠かせません。