GZIP(1) ユーザ・コマンド GZIP(1)
【名前】
gzip, gunzip, zcat - ファイルを圧縮、展開する。
【形式】
(GNU Original)
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ... ]
zcat [ -fhLV ] [ name ... ]
(ArctanX Version)
gzip [ -acdfhilLmnNprstvVx19 ] [-S suffix] [-F .gzfile]
[-E path] [-X ex-file] [ name ... ]
gunzip [ -acfhilLmnNprtvVx ] [-S suffix]
[-E path] [-X ex-file] [ name ... ]
zcat [ -fhLV ] [ name ... ]
【機能説明】
gzip は、レンペル・ジブ・コーディング法を 用いて、指定された
ファイルのサイズを小さくします。可能な時はいつも、各々のファ
イルは拡張子 .gz を付加したものに置き換えられますが、所有者、
アクセスタイム、更新タイムは保存されます(デフォルトの拡張子
は、VMS では -gz で、MSDOS 、OS/2 FAT 、Windows NT FAT、Atari
では z です。)。もしファイル名が指定されない場合や、ファイル
名が "-" の場合には、標準入力を圧縮して標準出力に書き出します。
gzip は、普通のファイルにのみ圧縮を試みます。特に、シンボリッ
クリンクは無視します。
もし新しいファイル名が、そのファイルシステムに対して長過ぎる
場合は、 gzip はそれを切り詰めて短くします。 gzip はファイル
名の中の 3 文字より長い部分のみを切り詰めようとします(ピリ
オドによって、各部分は分けられているものと考えます。)。もし、
ファイル名が小さな部分だけから構成されている場合には、1 番長
い部分が切り詰められます。例えば、ファイル名が 14 文字に制限
されているならば、 gzip.msdos.exe は gzi.msd.exe.gz に圧縮さ
れます。ファイル名の長さに制限を持っていない処理系では、ファ
イル名は切り詰められません。
デフォルトでは、 gzip は元のファイル名とタイムスタンプを、圧
縮ファイルの中に保存します。これらは、 -N オプションを伴って
ファイルが展開される時に使用されます。これは、圧縮ファイル名
が切り詰められている時や、タイムスタンプがファイル転送の後で
保存されなかった時に都合がよいです。
圧縮されたファイルは、 gzip -d 、gunzip 、あるいは zcat を使
用することで、元通りの形式に復元されます。もし、圧縮ファイル
中に保存されているファイル名がそのファイルシステムに都合が悪
い場合には、元のファイル名から、正当になるように、新しいファ
イル名が構成されます。
gunzip は、ファイルのリストをコマンドラインで受けとり、ファ
イルネームが .gz, -gz, .z, -z, _z や .Z で終了し、かつ、正し
いマジックナンバーで始まるファイルを、元の圧縮ファイルについ
ていた拡張子(.gz 等)を除いたファイルに置き換えます。 gunzip
はまた、.tar.gz や .tar.Z の短縮形として、それぞれ特別な拡張
子 .tgz と .taz を認識します。圧縮時には、 gzip はもし必要な
ら、拡張子 .tar のファイル名を切り詰める代りに、拡張子 .tgz
を使用します。
gunzip は現在、gzip 、zip 、compress 、compress -H 、pack で
圧縮されたファイルを復元することができます。入力フォーマット
の判別は、自動的に行なわれます。前述の最初の2つのフォーマッ
トが使われている場合、 gunzip は、32 ビット CRC チェックを行
ないます。 pack の場合には、 gunzip は非圧縮時の長さをチェッ
クします。標準の compress フォーマットは一致チェックを許すよ
うには設計されていませんでした。しかし、 gunzip は時々、まず
い(壊れた) .Z ファイルを判別することができます。もし .Z ファ
イルを展開している時にエラーが起こったら、その .Z ファイルは
正しいと考えてはいけません。なぜなら、標準の uncompress は文
句を言わないからです。 このことは、一般に、標準の uncompress
は入力をチェックしていなくて、幸せに(訳者註 : 悪い意味での
「幸せに」であり、「脳天気に」くらいの意味だと思われる)ゴミ
出力を作っているということを意味しています。SCO の compress
-H フォーマット(lzh 圧縮法)は、 CRC を内部に持っていません
が、ある種の一致チェックを許しています。
zip によって作成されたファイルは、 その中に含まれるメンバが
1つでかつ deflation 法によって圧縮されている場合のみ復元可
能です。この機能は、tar.zip ファイルを tar.gz フォーマットに
変換しようとする場合にだけ助けになります。複数のメンバが格納
されている zip ファイルを復元するなら、gunzip の代わりに
unzip を使用してください。
zcat は、gunzip -c と同等です。(ある種のシステム上では、zcat
は compress への元のリンクを保存するために gzcat としてイン
ストールされるかもしれません。) zcat は、コマンドラインで与
えられたファイルのリスト、もしくは標準入力を展開し、標準出力
にそのデータを書きます。zcat は、拡張子 .gz があろうとなかろ
うと、正しい magic number を持つファイルを復元します。
gzip は、zip および PKZIP で使用されているレンペル・ジブ・ア
ルゴリズムを使用しています。得られる圧縮量は、入力のサイズと
共通文字列の配置に依存します。通常の例では、ソースや英文のよ
うなテキストは、60 〜 70% は削減できます。圧縮率は一般的に、
LZW(compress で使用)、ハフマン・コーディング法(pack で使用)、
適応型ハフマン・コーディング法( compactで使用 ) によって達成
されるものよりもずっと良いです。
たとえ圧縮されたファイルが、オリジナルに比べてわずかにサイズ
が増加するとしても、圧縮は常に実行されます。最悪の場合でも、
増加量は gzip のファイルヘッダにあたる数バイト + 32KB のブロッ
クごとに 5 バイトであり、大きいファイルの場合は、(訳者註:
ヘッダの大きさは無視できるので)増加率は 0.015 % です
(訳者註: 5 byte / 32 KB ≒ 0.015%)。したがって、実際のディ
スクブロック使用量は、ほとんどの場合、増加しません。 gzip は
圧縮時や展開時に、そのファイルのモード、所有者、タイムスタン
プをそのまま変更しません。
【オプション】
-a --ascii
アスキーテキストモード: ローカルな慣習に従って、行末を
変換します。このオプションは、いくつかの非 Unix システム
上でのみ、サポートされます。MSDOS では、CR LF は圧縮時に
LF に変換され、LF は展開時に CR LF に変換されます。
-c --stdout --to-stdout (標準出力)
結果を標準出力に書き出し、元のファイルは変更されません。
もし、いくつかのファイルがコマンドラインに与えられている
場合は、出力は独立に圧縮されたものの連続で構成されます。
より良い圧縮率を得たいならば、圧縮の前にすべての入力ファ
イルを1つに繋げて下さい。
-d --decompress --uncompress (展開)
圧縮ファイルを展開します。
-f --force (強制実行)
ファイルが複数のリンクを持とうが、一致するファイルが既に
存在しようが、圧縮データがターミナルから読まれたりターミ
ナルへ書かれようが、強制的に圧縮、もしくは展開を行います。
もし、入力データが gzip によって認識されないフォーマッ
トの場合で、かつ、もし --stdout オプションが与えられてい
る場合には、入力データを何も変更することなく、標準出力に
コピーします。すなわち、zcat は cat として振る舞います。
もし -f オプションが与えられず、かつ、バックグラウンドで
実行されていない場合は、 gzip は存在しているファイルに上
書きするかどうかを問い合わせます。
-h --help (ヘルプ)
ヘルプを表示してから quit します。
-l --list (リスト)
各圧縮ファイルに対して、以下のフィールドをリスト表示しま
す。
compressed size: 圧縮ファイルのサイズ
uncompressed size: 非圧縮ファイルのサイズ
ratio: 圧縮率(不明な場合は 0.0%)
uncompressed_name: 非圧縮ファイルの名前
圧縮された .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 のライセンスを表示してから quit します。
-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 (バージョン)
バージョン表示です。バージョン番号とコンパイルオプション
を表示し、その後 quit します。
-# --fast --best
数字 # を指定することで、圧縮速度を指定します。ここで、
-1 あるいは --fast は、最も高速な圧縮方法(圧縮率は低い)
という意味で、-9 あるいは --best は、最も低速な圧縮方法
(最高圧縮)という意味です。圧縮レベルのデフォルトは -6
です(すなわち、速度を犠牲にして、高圧縮方向に片寄らせて
います)。
<GNU オリジナルにはない拡張オプション>
(Ver 1.0.5 (X6_03) 以降)
-x --extract (ファイル個別展開)
-c オプションとリダイレクトを使って複数ファイルを1つに
まとめた .gz ファイルに対して、ファイルを個別に展開して、
元どおりの複数ファイルに復元します。ただし、この .gz ファ
イルは、 -n オプションをつけたりせずに、全てのファイル名
が .gz ファイル中に保存されたものに限ります。このオプショ
ンは -d オプションを含んでいるので、-d を指定する必要はあ
りません。また、.gz ファイル中の指定ファイルだけを展開す
る場合には、後述の -X オプションを使用して下さい。-d オプ
ションと違って、展開後は .gz ファイルは失われません。
(Ver 1.0.7 (X6_02) 以降)
-s --savepath (ファイル名セーブ(ディレクトリ名付き))
保存するファイル名にディレクトリ名もつけます。通常は、-r
オプションと併用します。
-w --mkdir (ディレクトリ作成)
-x オプションで .gz ファイルを展開する場合、もし必要なら
ディレクトリを作成します。本オプションは、 -r, -s を使用
して作成された .gz ファイルを -x で展開する場合にのみ有
効です。このオプションは、Ver 1.2.4 (X6_01) より前のバー
ジョンでは、-m オプションだったので、注意が必要です。
(Ver 1.0.7 (X6_03) 以降)
-F --gzout
★gzipのページに戻る
arctanx@hauN.org