ZIP形式について
ZIPは1989年にPhil Katz氏が考案した、最も広く使われているアーカイブ形式です。複数の圧縮アルゴリズムに対応しており、中でもDEFLATEが最も一般的です。ZIPアーカイブはWindows、macOS、ほとんどのLinuxディストリビューションで、追加ソフトなしに標準対応しています。この形式はファイルごとの個別圧縮に対応しているため、アーカイブ全体を展開しなくても個々のファイルを取り出せます。
ZIPから変換する理由
ZIPはあらゆる環境で使える汎用性が魅力ですが、他の形式に変換することで大きな利点が得られる場合があります。7Zへの変換ではLZMA2圧縮によりアーカイブサイズを30〜70%削減でき、長期保存や帯域の限られたファイル転送に適しています。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で使われるLZMA2は、テキストファイルや実行ファイルに対して通常20〜50%高い圧縮率を実現しますが、圧縮・展開ともに時間がかかります。GZIP(TAR.GZ)はZIPより展開が速く、圧縮率もほぼ同等です。BZIP2(TAR.BZ2)はZIPやGZIPより高い圧縮率を実現し、XZ(TAR.XZ)は7Z並みかそれ以上の圧縮効率を持ちます。
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ツールが欠かせません。