日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
GZIP(1) GZIP(1)
名称
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 は、ファイル名の 3 文字以上の部分にのみ名
前 の 縮 小を試みます。 (部分とは、ドットによって分けられた所です。) も
し、ファイル名が短かい部分のみで構成されていた時は、最も長い部分を縮 小
します。例えば、ファイル名が 14 文字という制限がある時、 gzip.msdos.exe
は gzi.msd.exe.gz となります。ファイル名の文字数が制限を持たないシス テ
ムでは、ファイル名の縮小は行われません。
デ フォルトで gzip は、オリジナルのファイル名とタイムスタンプを圧縮され
たファイル中に保存します。これらは、 -N オプション付きで伸長さ れ た 時
に、 使われます。これは、圧縮されたファイル名が縮小されていたり、ファイ
ル転送後にタイムスタンプが保存されなかった時に便利です。
圧縮されたファイルは、 gzip -d か gunzip か zcat を用い、オリジナルに戻
す ことが出来ます。もし、圧縮されたファイルに保存されたオリジナルのファ
イル名がファイルシステムに合わなければ、オリジナルのファイル名から新 し
いファイル名が作られます。
gunzip は、コマンドライン上のファイルのリストを受け取り、.gz, -gz, .z,
-z, _z, .Z で終っていて、正しいマジックナンバーで始まっているファ イ ル
を、 元 の 拡 張子を取り除いた圧縮されていないファイルにします。 gunzip
は、 .tar.gz や .tar.Z を省略した .tgz や .taz も認識します。圧縮 す る
時、 gzip は、 .tar ファイルのファイル名を縮めるかわりに .tgz を使いま
す。
gunzip は、 gzip, zip, compress, compress -H, pack で作られたファイルを
伸 長できます。入力されたファイルがどの方式で圧縮されいるかは自動的に判
別されます。最初の二つの方式を使うと、 gunzip は 32ビット CRC を チェッ
ク します。 pack の場合、 gunzip は伸長された大きさをチェックします。標
準の compress は一貫性のチェックをするように設計されていません で し た
が、 gunzip は .Z ファイルが正しくないことを検出できることもあります。
もし .Z ファイルを伸長する時にエラーに会う場合には、 標準の uncompress
が エラーを出さないという理由で .Z ファイルは正しいと思わないで下さい。
これは一般的に、標準の uncompress が入力をチェックせず、ゴミである出 力
をしてしまうという事を意味しています。 SCO compress -H 方式 (lzh 圧縮技
法) は CRC を含みませんが、ある程度の一貫性のチェックの余地があります。
zip で作られたファイルは、 'deflation' 技法で圧縮された一つのメンバをも
つ時のみ gzip で伸長できます。この特徴は tar.zip ファイルを tar.gz ファ
イ ルにするのを助けることのみを意図しています。複数のメンバを持った zip
ファイルを取り出す時には gunzip ではなく unzip を使って下さい。
zcat は、 gunzip -c と同一です。 (いくつかのシステムでは、 zcat は com-
press へのオリジナルのリンクを保存しておくために gzcat としてインストー
ルされているかもしれません。) zcat は、コマンドラインで指定されたファイ
ル か標準入力からの入力を伸長し、標準出力へ伸長したデータを出力します。
zcat は、 .gz 拡張子であろうとなかろうと、マジックナンバーが正しけれ ば
ファイルを伸長します。
gzip は、 zip や PKZIP で使われている Lempel-Ziv アルゴリズムを使ってい
ます。圧縮率は入力の大きさや共通の文字列の分布によります。一般に、 ソー
スコードや英語のようなテキストは 60-70% 縮小されます。また、 LZW ( com-
press で使われている)、 Huffman coding ( pack で使われている)、適 応 性
Huffman coding (compact) よりも圧縮率が良いです。
圧 縮されたファイルがオリジナルのファイルよりわずかでも大きいとしても、
圧縮は常に行われます。最悪の伸長は gzip ファイルヘッダの数バイト、 32K
ブ ロッ ク毎に 5 バイトの増加、すなわち伸長率 0.015% です。使用している
ディスクブロックの実際の数はほとんどの場合決して増加しない事に注意し て
く ださい。 gzip は、圧縮や伸長を行う時ファイルのモード、所有者、タイム
スタンプを保存します。
オプション
-a --ascii
行末の変換を行います。このオプションは非 Unix 環境でのみサポート
されています。例えばMSDOSでは、圧縮時に CR LF が LF に変換され、
伸長時に LF が CR LF に変換されます。
-c --stdout --to-stdout
オリジナルファイルはそのままで、結果を標準出力へ書き出します。も
し、複数のファイルが入力されれば、結果は一続きの独立したものにな
ります。よりよく圧縮をするためには、圧縮をする前にすべての 入 力
ファイルを結合するとよいです。
-d --decompress --uncompress
伸長を行います。
-f --force
ファイルが複数のリンクを持っていたり、すでにファイルは存在してと
しても、また圧縮されたデータを端末から読み書きしようとしたときで
も圧縮や伸長を強行します。もし入力されたデータが gzip で認識出来
ない形式でありオプション --stdout が指定された場合、変更されるこ
となく入力されたデータは標準出力へコピーされます: zcat は cat と
して振舞います。もし -f が指定されておらずバックグランドで実行さ
れていない場合には、 gzip はファイルを上書きしてよいか確認を求め
ます。
-h --help
ヘルプを表示し、終了します。
-l --list
圧縮されたファイルそれぞれに以下のフィールドを表示する。
compressed size: 圧縮されたファイルの大きさ
uncompressed size: 伸長されたファイルの大きさ
ratio: 圧縮率 (分からなければ 0.0%)
uncompressed_name: 伸長されたファイルの名前
uncompressed size が -1 ならば、ファイルは gzip 形式ではなく .Z
ファイル等です。そのようなファイルの伸長されたファイルの大きさを
知るには、以下のようにして下さい。
zcat file.Z | wc -c
--verbose オプションを共に指定すると、以下のフィールドが追加され
ます。
method: 圧縮技法
crc: 伸長されたファイルの 32-bit CRC
date & time: 伸長されたファイルのタイムスタンプ
圧 縮 技法は今のところ deflate, compress, lzh (SCO compress -H),
pack をサポートしています。crc が ffffffff ならば、gzip 形式では
ありません。
--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 ファイルの一つのメンバが壊れた場合、他のメンバは復元
できます (壊れたメンバを取り除けば)。しかし、同時にすべてのメンバを圧縮
する時、
gzip -c file1 file2 > foo.gz
と実行するより、以下のように実行するとより圧縮率を上げる事が出来ます。
cat file1 file2 | gzip > foo.gz
も し結合されたファイルをより圧縮率を上げるために再圧縮したければ、以下
のように実行して下さい。
gzip -cd old.gz | gzip > new.gz
もし圧縮されたファイルがいくつかのメンバを持つのなら、 --list オプ ショ
ンで報告される伸長後の大きさや CRC は最後のメンバのみを示しています。す
べてのメンバの伸長後の大きさが必要なら、以下のように実行して下さい。
gzip -cd file.gz | wc -c
複数のメンバを持ち、後からあるメンバを抜き取る事ができるような 単 一 の
アー カ イ ブファイルを作りたければ、 tar や zip のようなアーカイバーを
使って下さい。 GNU tar は gzip を呼び出す -z オプションをサポートしてい
ます。 gzip は tar の代替ではなく 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), compress(1)
診断
終了コードは通常 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
file が、このマシンの伸長プログラムよりも多くの bit を処理で き
る プ ロ グラムにより (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 フラグを使用して下さい。
注意
圧縮されたデータをテープに書く時、一般にブロック境界まで 0 で埋める必要
が あります。データを読み、全ブロックを gunzip で伸長する時、 gunzip は
圧縮されたデータの後にゴミがあると検出し、デフォルトでは警告を出力し ま
す。この警告を抑えるには --quiet オプションを使わなければなりません。こ
のオプションは、以下のように GZIP 環境変数にセット出来ます。
sh では: GZIP="-q" tar -xfz --block-compress /dev/rst0
csh では: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0
上記の例では、gzip は GNU tar の -z オプションによって暗黙的に呼び出 さ
れ ています。テープで圧縮されたデータを読み書きするのに同じブロックサイ
ズ (tar の -b オプション) が使われているか確認して下さい。(この例 で は
tar は GNU Version を使っていると仮定しています。)
バグ
サイズが 2GB を越える場合のオプション --list による出力は、正しくないも
のです。圧縮ファイルがシークできない媒体上に存在する場合、オ プ ショ ン
--list による出力は、サイズを -1 としヘッダ内の CRC を 0xffffffffとしま
す。
まれに、オプション --best を付加して圧縮した場合よりも、デフォルトの 圧
縮 時 (-6) の方が圧縮率が良いことがあります。ファイルに高い冗長性があれ
ば、 compress の方が gzip より圧縮率がよいです。
GZIP(1)