man gzip

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 はファイル名のうちの 4 文字以上のパ ー
       トを切り詰めようとする。 (各パートはドットで区切られている。) 小さなパ
       ートだけからファイル名ができている場合、もっとも長いパートが切り詰めら
       れ る 。 例 え ば 、 フ ァ イ ル名が 14 文字までに制限されている場合、
       gzip.msdos.exe は gzi.msd.exe.gz という名前で圧縮される。ファイル名 の
       長さに制限がないシステムでは、ファイル名が切り詰められることはない。

       デフォルトでは、 gzip は圧縮ファイルの中に元ファイルの名前とタイムスタ
       ンプを保存する。これらの情報はファイルを -N オプションで伸長するときに
       使われる。これは、圧縮されたファイルの名前が切り詰められた場合や、ファ
       イル転送の後でタイムスタンプが保存されなかった場合に役立つ。

       圧縮されたファイルは gzip -d, gunzip, zcat を使うと元の形に復元する こ
       とができる。圧縮ファイルに保存された元ファイルの名前がファイルシステム
       に適合しない場合、そのファイルシステムに適合するように元の名前から新し
       い名前が作られる。

       gunzip  は、ファイル名が .gz, -gz, .z, -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 形式へ変換する際の補助となることだけを意図
       している。複数の元ファイルを含んでいる zip ファイルを伸長するために は
       、 gunzip ではなく unzip を使うこと。

       zcat  は gunzip -c と同一である。 (compress へのオリジナルのリンクを保
       存するために、 zcat が gzcat としてインストールされているシステムが あ
       る かもしれない。) zcat はコマンドラインで指示されるファイルのリストま
       たは標準入力を伸長し、伸長したデータを標準出力に書き出す。 zcat はファ
       イ ルが .gz という拡張子であるかどうかわらず、正しいマジックナンバーを
       持っているファイルであれば伸長しようとする。

       gzip は zip と PKZIP で使われている Lempel-Ziv アルゴリズムを使う。 得
       られる圧縮量は、入力のサイズと共通の部分データ列の分布に依存する。一般
       に、ソースコードや英文といったテキストでは 60-70% 小さくなる 。  (com-
       press に使われている) LZW・ (pack に使われている) Huffman コーディング
       ・ (compact に使われている) 適応 Huffman コーディング、これらによる 圧
       縮に比べて、この圧縮率は一般にかなり良い。

       たとえ圧縮されたファイルが元ファイルより少し大きくなるとしても、圧縮は
       常に行われる。最悪の場合、gzip ファイルヘッダのための数バイトと 32K バ
       イ トブロック毎に 5 バイトの増加となり、大きなファイルでは 0.015% の増
       加率となる。ただし実際の使用ディスクブロック数は、ほとんど絶対に増加し
       ない。 gzip は圧縮・伸長時にファイルのアクセス権・所有者・タイムスタン
       プを保存する。

オプション
       -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)

返り値
       通常、終了状態は 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 を使うことを仮定している。)

バグ
       サイズが 2GB を越える場合、--list オプションによる表示は正しくない。圧
       縮ファイルがシーク不可媒体の上に存在する場合、 --list オプションによる
       表示は、サイズが -1、crc が ffffffff となる。

       稀に --best オプションによって、デフォルトの圧縮レベル (-6) より圧縮が
       悪 く なることがある。非常に冗長なファイルでは、 compress による圧縮が
       gzip より良くなることがある。

                                     local                             GZIP(1)