スポンサーリンク

COMPRESS(1) FreeBSD 一般コマンドマニュアル COMPRESS(1)

名称

compress, uncompress − データを圧縮、展開する

書式

compress [−cfv] [−b bits] [file ...]

uncompress [−cfv] [file ...]

解説

compress ユーティリティは adaptive Lempel-Ziv 法を用いて、ファイルを圧縮 します。個々の圧縮された file は、元のファイル名に拡張子 ‘‘.Z’’ を付加し たものにリネームされます。そして、ファイルの更新時刻、最終アクセス時刻、 ファイルフラグ、モード、ユーザ ID、グループ ID の大半は、パーミッションの 許す範囲で圧縮ファイルに引き継がれます。もし圧縮しても file のサイズが小 さくならない場合、compress はそのファイルを無視します。

uncompress ユーティリティは、compress されたファイルを元通りのファイルに リストアし、ファイル名を拡張子 ‘‘.Z’’ を除いたものにリネームします。

compress, uncompress によってリネームされるファイルの名前がすでに存在し、 標準入力が端末の場合は、上書きしてもよいか確認を求めるプロンプトが (標準 エラー出力に) 出力されます。プロンプトが出せなかったり、確認の回答が得ら れなかった場合には、ファイルは上書きされません。

ファイル名が指定されなかった場合または file 引数が単一のダッシュ (‘’) の 場合、標準入力からのデータが圧縮もしくは展開され、結果が標準出力に出力さ れます。入力および出力ファイルが通常ファイルでない場合、圧縮後のサイズの チェックとファイルの上書きチェックは行なわれません。入力ファイルは削除さ れず、また入力ファイルの属性は引き継がれません。

オプションは以下のものがあります:

       −b

bits コードの上限値を指定します (以下を参照)。

−c
compressed または uncompressed の出力を標準出力に出します。入力元 のファイルは参照されるのみで変更されません。

−f
ファイル長が小さくなるならないにかかわらず、ファイルの圧縮を強行 します。また、圧縮ファイルと同名のファイルがすでに存在しても、確 認を求めることなく強制的にファイルの上書きを行ないます。

−v
圧縮後、ファイルサイズがどれだけ減ったかをパーセント表示します。

compress ユーティリティは Lempel-Ziv 修正アルゴリズムを使用します。ファイ ル内の重複する部分文字列は、まず、257 以上の 9ビットコードに置き換えられ ます。コードが 512 に達すると、アルゴリズムは 10 ビットコードへ切り替えら れ、 −b フラグによって指定された上限 (デフォルトは 16) に達するまで、更に 上のビットを使っていきます。 bits は、9 から 16 の範囲になければなりませ ん。

bits の上限に達すると、 compress は圧縮率を定期的にチェックします。圧縮率 が上がっているとき、 compress は既存のコード辞書を使い続けますが、圧縮率 が下がったときは compress は、部分文字列のテーブルを破棄し、最初からテー ブルを作り直します。こうして、アルゴリズムをファイルの次の "block" へ適用 していくことができます。

ランダムデータの展開または圧縮されたデータの再圧縮を行わないようにするた めのマジックナンバと共に、圧縮の際に指定された bits パラメータがエンコー ドされ、圧縮ファイルの中に保存されるため、 uncompress では −b フラグが省 略されています。

得られる圧縮の量は、入力サイズ、コードあたりの bits の数, および重複する 部分文字列の分布に依存しています。普通、ソースコードや英語のテキスト は、50−60% 圧縮されます。一般的に (pack コマンドで使われている) Huffman 法、または (compact コマンドで使われている) 最適化 Huffman 法によって得ら れるより、圧縮は良く、計算時間もかかりません。

診断

ユーティリティ compress および uncompress は、成功すると 0 で、エラーが あった場合は >0 で終了します。

圧縮を試みたファイルの大きさが減少しない場合で −f オプションが指定されな かった場合、ユーティリティ compress は 2 で終了します。

関連項目

gunzip(1), gzexe(1), gzip(1), zcat(1), zmore(1), znew(1)

       Welch, Terry A., "                           A Technique for High Performance Data Compression",       IEEE Computer,                        17:6,                                pp. 8-19,                                            June, 1984.

規格

ユーティリティ compress および uncompress は IEEE Std 1003.1-2001 (‘‘POSIX.1’’) に適合しています。

歴史

compress コマンドは 4.3BSD から登場しました。

FreeBSD 10.0 May 17, 2002 FreeBSD 10.0

スポンサーリンク