Gzip
データ圧縮プログラムのひとつ、およびその圧縮データのフォーマット
From Wikipedia, the free encyclopedia
gzip(ジー・ジップ)は、データ圧縮プログラムのひとつ、およびその圧縮データのフォーマットである。「GNU zip」の略であり[2] GNUプロジェクトによって開発・メンテナンスされている。現在、多くのUNIXに標準搭載される。
|
| |
| 作者 | |
|---|---|
| 開発元 | GNUプロジェクト |
| 初版 | 1992年10月31日 |
| 最新版 | |
| リポジトリ | |
| プログラミング 言語 | C言語 |
| 対応OS | クロスプラットフォーム |
| 種別 | データ圧縮 |
| ライセンス | GPL-3.0-or-later |
| 公式サイト |
www |
それ以前に普及していたcompressの圧縮アルゴリズムはLZWだが、LZWは特許を侵害していたのでGNUプロジェクトが代替としてgzipを開発した[3][注 1]。
概要
gzipは、Lempel-Zivアルゴリズム (LZ77) とハフマン符号を用いており、従来のcompressよりも圧縮率が高いことが特徴である[5]。ただし非常に冗長なファイルでは、compressの方が圧縮率が高いこともある。開発者向けにライブラリとしてzlibが作成され、これにより広く使われる形式となった。gzipによって圧縮されたファイルの拡張子は慣習的に.gzを用いる(極初期のgzipは.zを用いたが、packとの混同を避けるため変更された。1993年頃に作成された.zはgzipファイルの可能性が高い。なお、gzip自体はpack形式の伸長が可能である)。
また、gzipコマンドは標準入力から受け取ったデータを圧縮し、標準出力から取り出すことができる(gunzipは逆の動作)[5]ため、ファイル圧縮に限らず、多様な目的に使用できる。
gzipはzip等と異なりファイルアーカイバとしての機能は持たず、複数ファイルを扱いたい場合はtarファイルをgzip圧縮するという使い方が一般的である[5]。GNU tarにはアーカイブをgzipにフィルタする-zオプションが付いている。これによりアーカイブと圧縮を同時に、あるいは抽出と伸張を同時に行うことができる[6]。gzip圧縮したtarアーカイブは拡張子.tar.gzまたは.tgzを付ける習慣がある。
HTTP 1.1にはデータを圧縮し転送量を減らす機能があるが、gzipはその際の圧縮フォーマットの一つとしても使われている[7]。また、gzipはその仕様がRFC 1952で記述されている。
初期のうちに登場した1.2.4が安定したバージョンとして長期にわたって利用されたが、4GB超のファイルへの対応が無かったため、種々のバージョンアップが行われた。
互換性
主なオプション[5]
- -r
- サブディレクトリにわたって圧縮する
- -v
- 詳細情報を表示する
- -数字
- 圧縮率の調整 (例:-9 圧縮率を最大にする -1 圧縮速度を最大にする。既定は6)
- -f
- 上書きを強制する