Provided by: manpages-ja_0.5.0.0.20180315+dfsg-1_all
名前
gzip, gunzip, zcat - ファイルの圧縮・伸長を行う
書式
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ] gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ... ] zcat [ -fhLV ] [ name ... ]
説明
gzip は Lempel-Ziv コーディング (LZ77) を利用して、 指定されたファイルのサイズを小さくす る。 各ファイルは所有権・アクセス時刻・修正時刻を保存したまま、 拡張子 .gz をつけたファイ ルに置き換えられる。 (デフォルトの拡張子は、VMSでは -gz, MSDOS, OS/2 FAT, Windows NT FAT, Atari では z である。) ファイルが指定されない場合、またはファイル名が "-" の場合、 標準入 力を圧縮して標準出力に書き出す。 gzip は通常のファイルしか圧縮しようとしない。 特に、シン ボリックリンクは無視される。 圧縮されたファイル名が、そのファイルシステム上では長すぎる場合、 gzip はファイル名を切り詰 める。 gzip はファイル名のうちの 4 文字以上のパートを切り詰めようとする。 (各パートはドッ トで区切られている。) 小さなパートだけからファイル名ができている場合、 もっとも長いパート が切り詰められる。 例えば、ファイル名が 14 文字までに制限されている場合、 gzip.msdos.exe は gzi.msd.exe.gz という名前で圧縮される。 ファイル名の長さに制限がないシステムでは、 ファ イル名が切り詰められることはない。 デフォルトでは、 gzip は圧縮ファイルの中に元ファイルの名前とタイムスタンプを保存する。 こ れらの情報はファイルを -N オプションで伸長するときに使われる。 これは、圧縮されたファイル の名前が切り詰められた場合や、 ファイル転送の後でタイムスタンプが保存されなかった場合に役 立つ。 圧縮されたファイルは gzip -d, gunzip, zcat を使うと元の形に復元することができる。 圧縮ファ イルに保存された元ファイルの名前がファイルシステムに適合しない場合、 そのファイルシステム に適合するように元の名前から新しい名前が作られる。 gunzip は、ファイル名が .gz, -gz, .z, -z, _z (大文字小文字は区別しない) で終わっており、 正しいマジックナンバーで始まっているファイルのリストを コマンドラインから受け取り、 伸長し たファイルに置き換える。このとき圧縮ファイルの拡張子は取り除かれる。 gunzip は .tgz と .taz という特別な拡張子も認識する。 これらはそれぞれ、 .tar.gz と .tar.Z の省略形である。 圧縮するときに .tar という拡張子をもつファイルの名前を切り詰める必要があるなら、 gzip はか わりに .tgz という拡張子を使う。 gunzip は gzip, zip, compress, compress -H, pack で作られたファイルを正しく伸長できる。 入 力形式の検知は自動的に行われる。 はじめの 2 つの形式を使った場合、 gunzip は 32 ビットの CRC をチェックする。 pack に対して、gunzip は伸長した長さをチェックする。 標準的な compress 形式は、整合性チェックをするようには設計されていない。 しかし、 gunzip は壊れた .Z ファイルを検知することができる場合もある。.Z ファイルを 伸長しているときにエラーが出た ときには、 単に標準の uncompress がエラーを出さないという理由で .Z ファイルが正しいと考え てはならない。 一般的にいうと、標準的な uncompress は入力をチェックせず、脳天気にゴミを出 力してしまうことがある。 SCO の compress -H 形式 (lzh 圧縮法) は CRC を含んでいないが、い くつかの整合性チェックができる。 zip によって作られたファイルは、'deflation' 法で圧縮された元ファイルを 1 つしか 含まない場 合にだけ、gzip で伸長することができる。この特徴は、tar.zip ファイルを tar.gz 形式へ変換す る際の補助となることだけを意図している。 元ファイルが 1 つだけの zip ファイルを伸長するに は、gunzip <foo.zip や gunzip -S .zip foo.zip といったコマンドを使用する。 複数の元ファイ ルを含んでいる zip ファイルを伸長するためには、 gunzip ではなく unzip を使うこと。 zcat は gunzip -c と同一である。 (compress へのオリジナルのリンクを保存するために、 zcat が gzcat としてインストールされているシステムがあるかもしれない。) zcat はコマンドライン で指示されるファイルのリストまたは標準入力を伸長し、 伸長したデータを標準出力に書き出す。 zcat はファイルが .gz という拡張子であるかどうかわらず、 正しいマジックナンバーを持ってい るファイルであれば伸長しようとする。 gzip は zip と PKZIP で使われている Lempel-Ziv アルゴリズムを使う。 得られる圧縮量は、入力 のサイズと共通の部分データ列の分布に依存する。 一般に、ソースコードや英文といったテキスト では 60-70% 小さくなる。 (compress に使われている) LZW・ (pack に使われている) Huffman コーディング・ (compact に使われている) 適応 Huffman コーディング、 これらによる圧縮に比べ て、この圧縮率は一般にかなり良い。 たとえ圧縮されたファイルが元ファイルより少し大きくなるとしても、 圧縮は常に行われる。 最悪 の場合、gzip ファイルヘッダのための数バイトと 32K バイトブロック毎に 5 バイトの増加とな り、 大きなファイルでは 0.015% の増加率となる。 ただし実際の使用ディスクブロック数は、 ほ とんど絶対に増加しない。 gzip は圧縮・伸長時にファイルのアクセス権・所有者・タイムスタンプ を保存する。 gzip ファイル形式は P. Deutsch, GZIP file format specification version 4.3, <ftp://ftp.isi.edu/in-notes/rfc1952.txt>, Internet RFC 1952 (May 1996)で規定されてい る。zip deflation 形式は P. Deutsch, DEFLATE Compressed Data Format Specification version 1.3, <ftp://ftp.isi.edu/in-notes/rfc1951.txt>, Internet RFC 1951 (May 1996) で規定されてい る。
オプション
-a --ascii アスキーテキストモード:局所変換を使って行末の変換をする。 このオプションはいくつか の非 Unix システムでサポートされている。 MSDOS では、圧縮時に CR LF が LF に変換さ れ、 伸長時に LF が CR LF に変換される。 -c --stdout --to-stdout 出力を標準出力に書き出し、元ファイルを変更しない。 入力ファイルが複数ある場合、出力 はファイル毎に圧縮されたものとなる。 圧縮率を上げるには、圧縮する前にすべての入力 ファイルを (tar などで) まとめること。 -d --decompress --uncompress 伸長する。 -f --force ファイルが複数のリンクを張られていたり、 対応するファイルが既に存在していたり、 圧 縮されたデータが端末に対して読み書きされてしているような場合でも、 強制的に圧縮・伸 長を行う。 入力データが gzip で認識できない形式のときに --stdout オプションが指定さ れていると、 入力データは変更なしに標準出力にコピーされる。 つまり、 zcat を cat と して動作させる。 -f が指定されず、かつバックグラウンドで動作していない場合、 gzip は既に存在するファイルを上書きするかを問い合わせるプロンプトを出す。 -h --help ヘルプ画面を表示して終了する。 -l --list 圧縮された個々のファイルについて、以下のフィールドを列挙する。 compressed size: 圧縮されたファイルのサイズ uncompressed size: 伸長されたファイルのサイズ ratio: 圧縮率 (不明の場合は 0.0%) uncompressed_name: 伸長されたファイルの名前 compress でつくられた .Z ファイルのように、 gzip 形式でないファイルの伸長時サイズは -1 にされる。 そのようなファイルについて伸長されたファイルのサイズを求める場合は、 zcat file.Z | wc -c を使うこと。--verbose オプションと組み合わせると 以下のフィールドも表示される。 method: 圧縮法 crc: 伸長されたデータの 32 ビット CRC date & time: 伸長されたファイルのタイムスタンプ 現在サポートされている圧縮法は、deflate, compress, lzh (SCO compress -H), pack であ る。 gzip 形式でないファイルについて、crc は ffffffff とされる。 --name が同時に指定されると、(もし記録されているなら) 伸長されたファイルの名前・日 付・時刻は 圧縮ファイル内に記録されているものになる。 --verbose が同時に指定されると、どれかのファイルのサイズが不明でない限り、 サイズの 合計とその圧縮率も表示される。 --quiet が同時に指定されると、タイトルと合計の行は表 示されない。 -L --license gzip のライセンスを表示して終了する。 -n --no-name デフォルトでは、圧縮時に元ファイルの名前とタイムスタンプを保存させない。 (元の名前 を切り詰める必要がある場合は、元の名前は必ず保存される。) 伸長時に、元のファイル名 が存在しても復元せず (圧縮ファイル名から gzip 拡張子を取り除くだけとし)、 元ファイ ルのタイムスタンプが存在しても復元しない (圧縮ファイルからコピーする)。 このオプ ションは伸長時のデフォルトである。 -N --name 圧縮時に元ファイルの名前とタイムスタンプを保存する。 これがデフォルトである。 伸長 時に元ファイルの名前とタイムスタンプが存在するなら復元する。 このオプションは、ファ イル名の長さに制限があるシステムや、 ファイル転送の後にタイムスタンプが失われた場合 に役立つ。 -q --quiet すべての警告を抑制する。 -r --recursive ディレクトリ構造を再帰的に巡る。 コマンドラインで指定されたファイル名がディレクトリ であった場合、 gzip はディレクトリに降りて、見つかったすべてのファイルを圧縮する (gunzip の場合は、すべてのファイルを伸長する)。 -S .suf --suffix .suf 拡張子 .gz のかわりに .suf を使う。 どのような拡張子でも指定することができるが、.z と .gz 以外の拡張子は 使うべきでない。 他のシステムにファイルが転送されたときの混乱 を避けるためである。 拡張子なしの場合、以下のように拡張子に関係なく、 すべての指示 されたファイルを gunzip に伸長させることができる。 gunzip -S "" * (MSDOS の場合は *.*) 前のバージョンの gzip は拡張子 .z を使った。 これは pack(1) との衝突を避けるために 変更された。 -t --test テストする。圧縮ファイルの整合性をチェックする。 -v --verbose 詳細出力。圧縮・伸長される各ファイルについて名前と圧縮率を表示する。 -V --version バージョン。バージョン番号とコンパイルオプションを表示して終了する。 -# --fast --best 指定した数字 # を用いて圧縮のスピードを調整する。 -1 と --fast は最も速い圧縮法を示 す (圧縮率は低い)。 -9 と --best は最も遅い圧縮法を示す (圧縮率は最も高い)。 デフォ ルトの圧縮レベルは -6 である (つまり、速さを犠牲にして圧縮率の良い方にしてある)。
高度な使用法
複数の圧縮ファイルを連結することができる。 この場合、 gunzip はすべての圧縮ファイルを一度 に伸長する。たとえば、 gzip -c file1 > foo.gz gzip -c file2 >> foo.gz の後に gunzip -c foo とするのは、以下と同じである。 cat file1 file2 .gz ファイルのうち 1 つのファイルが壊れても、 (壊れたファイルを削除すれば) 他のファイルは まだ回復できる。 しかし、次のようにすべてのファイルを一度に圧縮すれば、より高い圧縮が得ら れる。 cat file1 file2 | gzip > foo.gz これは下の例より高く圧縮できる。 gzip -c file1 file2 > foo.gz より高い圧縮を得るために、結合されたファイルをもう一度圧縮するには、 次のようにすること。 gzip -cd old.gz | gzip > new.gz 圧縮ファイルが複数の元ファイルで構成されている場合、 --list オプションで表示される伸長時の サイズと CRC は、 最後の元ファイルについてのみ適用されたものである。 すべての元ファイルに ついて伸長時のサイズが必要な場合は、 次のコマンドを使うこと。 gzip -cd file.gz | wc -c 複数の元ファイルからなる 1 つの書庫ファイルを作って、 後から元ファイルを別々に伸長できるよ うにしたいなら、 tar や zip といったアーカイバーを使うこと。 GNU tar は gzip を透過的に起 動するために -z オプションをサポートしている。 gzip は tar の代用としてではなく、補助とし て設計されている。
環境変数
環境変数 GZIP に gzip のデフォルトのオプションセットを入れることができる。 これらのオプ ションは最初に解釈されるので、 明示的なコマンドラインパラメータで上書きすることができる。 例を示す。 sh の場合: GZIP="-8v --name"; export GZIP csh の場合: setenv GZIP "-8v --name" MSDOS の場合: set GZIP=-8v --name Vax/VMS では、環境変数の名前は GZIP_OPT である。 これは、プログラムを呼び出すためのシンボ ルセットとの衝突を避けるためである。
関連項目
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1), pack(1), compact(1) gzip ファイル形式は P. Deutsch, GZIP file format specification version 4.3, <ftp://ftp.isi.edu/in-notes/rfc1952.txt>, Internet RFC 1952 (May 1996) で規定されてい る。zip deflation 形式は P. Deutsch, DEFLATE Compressed Data Format Specification version 1.3, <ftp://ftp.isi.edu/in-notes/rfc1951.txt>, Internet RFC 1951 (May 1996) で規定されてい る。
返り値
通常、終了状態は 0 である。 エラーが起きた場合、終了状態は 1 である。 警告が起きた場合、終 了状態は 2 である。 Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] 無効なオプションがコマンドラインから指定された。 file: not in gzip format gunzip に指示されたファイルが圧縮されたものではない。 file: Corrupt input. Use zcat to recover some data. 圧縮されたファイルが壊れている。 破損した位置までのデータは、次のコマンドを使って修 復できる。 zcat file > recover file: compressed with xx bits, can only handle yy bits ファイル が、このマシン上での伸長コードより多くの ビット を扱うことができるプログラ ムで (LZW を使って) 圧縮されている。 より高い圧縮ができ、メモリ使用量の少ない、gzip を使って ファイルを再圧縮すること。 file: already has .gz suffix -- no change ファイルが既に圧縮されていると考えられる。 ファイル名を変更し、再度試みること。 file already exists; do you wish to overwrite (y or n)? 出力ファイルで置き換えたいなら "y" と答えること。 さもなければ、"n" と答えること。 gunzip: corrupt input SIGSEGV 違反が検知された。通常は、入力ファイルが壊れていることを意味している。 xx.x% 圧縮により節約された入力のパーセント表示。 (-v と -l のみに関連する。) -- not a regular file or directory: ignored 入力ファイルが通常ファイルでもディレクトリでもない場合 (たとえば、シンボリックリン ク・ソケット・FIFO・デバイスファイルの場合)、 変更せずにそのままにされる。 -- has xx other links: unchanged 入力ファイルにリンクが張られているので、変更しない。 詳しい情報は ln(1) を参照する こと。 複数にリンクが張られているファイルを強制的に圧縮するには -f フラグを使うこ と。
重要な注意
圧縮されたデータをテープに書き込むときは、 一般的に、出力のブロック境界をゼロで埋める必要 がある。 伸長のためにデータを読み込んですべてのブロックを gunzip に渡すと、 gunzip は通 常、圧縮されたデータの後ろに余分なゴミが続いていると検知して、 警告を発する。 この警告を抑 制するには --quiet オプションを使う必要がある。 このオプションは環境変数 GZIP に次のように して設定できる。 sh の場合: GZIP="-q" tar -xfz --block-compress /dev/rst0 csh の場合: (setenv GZIP -q; tar -xfz --block-compress /dev/rst0 上の例では、gzip は GNU tar の -z オプションによって暗に呼び出されている。 テープ上の圧縮 されたデータの読み出しと書き込みに 同じブロックサイズ (tar の -b オプション) が使われてい ることに注意すること。 (この例は、GNU 版の tar を使うことを仮定している。)
バグ
gzip 形式では、入力サイズは 2^32 の余りで表現されるため、 --list オプション による表示で は、圧縮前のファイルが 4GB 以上の場合、圧縮前のサイズや圧縮率が 正しく表示されない。以下の コマンドを使うと、この問題に抵触せずに、 大きな圧縮ファイルの本当のサイズを知ることができ る。 zcat file.gz | wc -c 圧縮ファイルがシークをサポートしていないメディア上に存在する場合、 --list オプションによる 表示は、 サイズが -1、crc が ffffffff となる。 稀に --best オプションによって、デフォルトの圧縮レベル (-6) より 圧縮が悪くなることがあ る。 非常に冗長なファイルでは、 compress による圧縮が gzip より良くなることがある。
著作権表示
Copyright © 1998, 1999, 2001, 2002 Free Software Foundation, Inc. Copyright © 1992, 1993 Jean-loup Gailly Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. local GZIP(1)