[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

1. 概観

gzip は Lempel-Ziv コーディング (LZ77) を使って指名されたファイル の大きさを減らします。可能であれば、各ファイルは、所有モードやアクセス時 刻、修正時刻を同じに保ったまま、`.gz' という拡張子を付けたもので置 き換えられます。(デフォルトの拡張子は VMS では `-gz' で、MSDOS や OS/2 FAT、Atari では `z' です。) もし何もファイルが指定されなかった り、ファイル名が "-" だったりすると、標準入力が圧縮されて標準出力に出さ れます。gzip は通常のファイルを圧縮しようとするだけでしょう。とり わけ、シンボリック・リンクは無視するでしょう。

もし新しいファイル名がそのファイルシステムには長過ぎるなら、gzip はそれを切り捨てます。gzip はファイル名のうち3文字よりも長い部分 だけを切り捨てようとします。(部分はドットで区切られています。) もしその 名前が小さい部分だけから成り立っていたら、一番長い部分が切り捨てられます。 例えば、ファイル名が14文字に限定されていたら、gzip.msdos.exe は gzi.msd.exe.gz に圧縮されます。名前はファイル名の長さに限界のないシステ ムでは切り捨てられません。

デフォルトで、gzip は元のファイル名やタイムスタンプを圧縮されたファ イルに保存します。これらは `-N' オプションを付けて、そのファイルを 解凍するときに使われます。これは圧縮されたファイルの名前が切り捨てられい たり、そのタイムスタンプがファイルの転送後に保存されなかったときに有効で す。

圧縮されたファイルは、`gzip -d' や gunzipzcat を 使って、元の姿に戻すことができます。もし圧縮されたファイルに収められてい た元の名前が、そのファイルシステムには適していなかった場合、適合させるた めに、その元の名前から新しい名前が組み立てられます。

gunzip はそのコマンド行でファイルのリストを受け取り、`.gz' や `.z'、`.Z'、`-gz'、`-z'、`_z' で終わる名前を 持ち、正しいマジックナンバーで始まる各ファイルを、その元の拡張子を持たな い、解凍されたファイルで置き換えます。gunzip はまた、特別な拡張子、 `.tgz' や `.taz' をそれぞれ `.tar.gz' と `.tar.Z' の 略記であると認識します。圧縮するとき、gzip は `.tar' 拡張子 を持つファイルを切り捨てる代わりに、もし必要であれば、 `.tgz' 拡張 子を使用します。

gunzip は現在 gzipzipcompress、 あるいは、pack で作られたファイルを解凍することができます。入力形 式の検出は自動的です。最初の二つの形式を使っているとき、gunzip は 32ビット CRC (cyclic redundancy check) を確認します。pack に対し ては、gunzip は圧縮されていないときの長さを確認します。 compress 形式は一貫性を確認できるようには設計されませんでした。し かし、gunzip はときどき悪い `.Z' ファイルを検出することがで きます。もし `.Z' ファイルを解凍しているときにエラーを受け取ったな ら、標準的な uncompress が文句を言わないからといって、その `.Z' ファイルが正しいと思ってはいけません。このことは一般的に、標準 的な uncompress はその入力を確認せず、幸福そうにゴミの出力を生成 してくれることを意味しています。SCO の `compress-H' 形式 (lzh 圧縮手法) は CRC を含んでいませんが、いくつかの一貫性の確認 をできるようにしています。

zip で作成されたファイルは gzip で解凍できますが、' deflation' 手法で圧縮された、単一の要素しかない場合だけです。この特徴は tar.zip ファイルを tar.gz 形式に変換するのを助けることだけ を目的にします。いくつかの要素を持つ zip ファイルを抜き出すには、 gunzip ではなく unzip を使ってください。

zcat は `gunzip -c' と同じです。zcat はコマンド行のファ イルのリストか標準入力を解凍して、解凍されたデータを標準出力に書き出しま す。zcat は `.gz' 接尾辞とは無関係に、正しいマジックナンバー を持つファイルを解凍するでしょう。

gzipzip や PKZIP で使われている Lempel-Ziv アルゴリズ ムを利用します。得られる圧縮量は入力の大きさやありふれた部分文字列の分布 に依存しています。典型的には、ソース・コードや英語のようなテキストは 60 から 70% 減少します。一般的に、LZW (compress で使われている) や、 Huffman コーディング (pack で使われている)、adaptive Huffman コー ディング (compact) で達成されるよりも、ずっと良い圧縮です。

たとえ圧縮されたファイルが若干元よりも大きくなっても、圧縮は常に行われま す。最悪の場合の膨張は、gzip のファイル・ヘッダに対して数バイトと、 各 32K ブロック毎に 5 バイト、あるいは、大きなファイルでは 0.015% の膨張 率です。実際に使われるディスク・ブロックの数はほとんど絶対に増えないこと に注意してください。gzip は圧縮したり解凍したりするとき、ファイル のモードや所有権、タイムスタンプを保存します。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on January, 21 2003 using texi2html