Gzip

出典: フリー百科事典『ウィキペディア(Wikipedia)』
GZIPから転送)
移動先: 案内検索

テンプレート:小文字 テンプレート:Infobox file format テンプレート:Infobox gzip(ジー・ジップ)とは、GNU ZIP の略であり、Deflateアルゴリズムを用いた汎用のデータ圧縮プログラムであるgzipコマンドを指す。ヘッダー・フッターの gzip 形式は RFC 1952 として仕様化されている。伸張にはgzip -dコマンドまたはgunzipコマンドを用いる。

概要

ほぼ全てのUNIXに標準搭載されているcompressコマンドがLZW関係の特許によりフリーでなくなったため、GNUプロジェクトにより、その置き換えを狙って開発された。現在、フリーのPC-UNIXにはほぼ確実に搭載されており、PC-UNIX界ではその目的は達成されたと言ってよい。アーカイブファイルであるZIPとは互換性はない。

gzipは、Lempel-Ziv アルゴリズム(LZ77)とハフマン符号を用いており、従来のcompressよりも圧縮率が高いことが特徴である。ただし非常に冗長なファイルでは、compressの方が圧縮率が高いこともある。開発者向けにライブラリとしてzlibが作成され、これにより広く使われる形式となった。gzipによって圧縮されたファイルの拡張子は慣習的に .gz を用いる(初期のgzipは.zを用いたがpackとの混同を避けるため変更された)。

また、gzipコマンドは標準入力から受け取ったデータを圧縮し、標準出力から取り出すことができる(gunzipは逆の動作)ため、ファイル圧縮に限らず、多用な目的に使用できる。

gzipはファイルアーカイバとしての機能は持たない。そのため、ファイルをtarコマンドによってアーカイブファイルにした後、更にgzip圧縮するという使い方も一般的である。GNU tarにはアーカイブをgzipにフィルタする-zオプションが付いている。これによりアーカイブと圧縮を同時に、あるいは抽出と伸張を同時に行うことができる。gzip圧縮したtarアーカイブは拡張子 .tar.gz または .tgz を付ける習慣がある。

HTTP1.1にはデータを圧縮し転送量を減らす機能があるが、gzipはその際の圧縮フォーマットの一つとしても使われている。また、gzipはその仕様がRFC1952で記述されている。

今日では、圧縮・伸張の速度より圧縮率の高さを重視する場合には、bzip2xzを使用することが多い。

互換性

gzipは、zip、compress、compress -H、packで圧縮されたファイルを伸張することができる。ただしzipファイルについては、Deflate法で圧縮されファイルが1つしか含まれていない場合にだけ伸張できる。gzipがインストールされているシステムでは、gunzip、zcat、uncompressコマンドが、gzipコマンドへのハードリンクとして存在していることが多い。

拡張子

.gz
tarと組み合わせる場合には .tar.gz もしくは .tgz とする

主なオプション

  • -r サブディレクトリに渡って圧縮する
  • -v 詳細情報を表示する
  • -数字 圧縮率の調整 (例:-9 圧縮率を最大にする -1 圧縮速度を最大にする)
  • -f 上書きを強制する

MIME-Type

application/x-gzip
tarによるアーカイブがなされている場合はapplication/x-tar-gzもある

関連項目

テンプレート:Portal

外部リンク

テンプレート:アーカイブファイルフォーマット