gzip 【GNU zip】 gzipファイル / gzipコマンド
概要
gzip(GNU zip)とは、主にLinuxなどのUNIX系OSで用いられる汎用の圧縮ファイル形式の一つ。ファイル名の標準の拡張子は「.gzip」または「.gz」。また、同形式の圧縮ファイル作成を行うコマンド(gzipコマンド)。古くから知られるLZ77圧縮アルゴリズムとハフマン符号化を組み合わせた「Deflate」方式と呼ばれる圧縮方式を採用しており、それ以前の方式よりも平均して高い圧縮率を得ることができる。
また、それ以降に登場した「bzip2」などのより高い圧縮率の方式よりも計算手順が単純で高速に処理できるという特徴から、現在でも様々な用途で使用される。Zip形式とは名前が似ておりDeflate方式を採用しているなどの類似点もあるが、直接の互換性はない。
gzipコマンド
gzipコマンドは「gzip オプション ファイル名」という書式で使用し、ファイル名で指定したファイルを圧縮する。圧縮されたファイルは元のファイル名に「.gz」を追加したファイル名で作成される。例えば、「gzip sample.txt」を実行すると同じディレクトリに「sample.txt.gz」という圧縮ファイルが作成される。
主なオプションとして、指定したディレクトリ内のファイルをすべて圧縮する「-r」、圧縮ファイルが既に存在する場合に上書きする「-f」、圧縮データを標準出力に出力する「-c」(パイプなどで他のコマンドに引き渡す際に使用)、圧縮ファイルを展開する「-d」などがある。gzipファイルを展開して元のファイルを取り出すコマンドとして「gunzip」が用意されているが、「gzip -d」と働きは同じである。
アーカイバとの併用
gzipファイル形式およびgzipコマンドは一つのファイルを圧縮する機能しかなく、複数のファイルやディレクトリ構造などをまとめて格納することはできないため、複数ファイルを一体的に扱いたい場合は「アーカイバ」(アーカイブソフト)と呼ばれるプログラムを併用することが多い。
UNIX系OSでは「tar」(tape archives)と呼ばれるアーカイブ形式およびコマンド(tarコマンド)が一般的であるため、しばしばgzipはtarと併用され、圧縮したファイルを連結したアーカイブファイルが作成される。その際のファイル名の拡張子は「.tgz」「.tar.gz」「.tar.gzip」などとなる。
歴史
gzipはGNUプロジェクトが開発し、1992年に最初のバージョンが公開された。圧縮方式およびプログラムはオープンソースとして公開されており、誰でも自由に利用することができる。ファイル圧縮以外にも、インターネットなどのIPネットワーク上でHTTPによるデータを送受信する際の標準圧縮方式として採用されており、RFC 1952として標準化されている。