compress コマンド

目的

データを圧縮します。

構文

compress-c ] [ -C ] [  -d ] [  -F ] [  -f ] [  -n ] [  -q ] [  -v ] [ -V ] [  -b Bits ] [ File ... ]

説明

compress コマンドは、最適 Lempel-Ziv コーディングを使用してデータを圧縮し、ファイルのサイズを削減します。 File パラメーターで指定された各オリジナル・ファイルは、可能であれば、その名前に .Z が付加された圧縮ファイルで置き換えられます。 呼び出し中のプロセスに適切な特権が付与されている場合、圧縮ファイルの所有権、モード、および変更時刻は、元のファイルのものと同じです。 指定されたファイルのパスが 1023 バイトを超えている場合、コマンドは機能しません。 ファイルを指定しなければ、標準入力が標準出力へ圧縮されます。 圧縮によってファイルのサイズが変わらなければ、メッセージが標準エラーに書き込まれ、元のファイルは置き換えられないままになっています。

注: ファイルを置換するには、適切な権限が必要です。

圧縮される量は、入力のサイズ、Bits 変数で指定された 1 コード当たりのビット数、および共通サブストリングの分布状態により決まります。 一般的な例では、ソース・コードや英語のテキストは 50% から 60% に圧縮されます。 compress コマンドの圧縮は、Huffman コーディング ( pack コマンドで使用される) またはアダプティブ・ハフマン・コーディングによって実現される圧縮よりもコンパクトであり、計算にかかる時間が短縮されます。

フラグ

表 1. フラグ
項目 説明
-b ビット ファイル中の共通サブストリングを置き換えるのに使用する最大ビット数を指定します。 Bit 変数の値は、9 ビットから 16 ビットの範囲でなければなりません。 Bit 変数のデフォルト値は 16 ビットです。 アルゴリズムがデータを圧縮する場合、最初に 9 ビット・コードをすべて (257 から 512 まで) 使って、可能な限りのサブストリングを置き換えます。 次に、すべての 10 ビット・コードなどを使用し、 -b フラグで指定された制限に達するまで続行します。
-c 標準出力に書き込みます。 ファイルは変更されません。
-C バークレー・ソフトウェア・ディストリビューション (BSD) 改訂 2.0 と互換性のある出力が作成されます。
-d compress コマンドの機能を uncompress コマンドとまったく同じものにします。
-f または -F 圧縮を強制します。 -f フラグおよび -F フラグのどちらでも使用することができます。 File.Z ファイルが既に存在する場合は上書きします。

Bits 変数の値に達すると、compress コマンドは定期的に圧縮率を検査します。 圧縮率が高くなっていれば、compress コマンドは引き続き既存のコード辞書を使用します。 逆に圧縮率が低くなっていれば、compress コマンドはサブストリングのテーブルを破棄し、再構築します。 テーブルの再構築によって、ファイルの次のブロックに、このアルゴリズムが適用されます。 .Z ファイルが既に存在し、 -f フラグが指定されておらず、プロセスがバックグラウンドで実行されていない場合、既存の .Z ファイルを上書きするかどうかを確認するためのプロンプトが出されます。

-n 圧縮されたファイルから、圧縮されたファイルのヘッダーを省きます。
注: このオプションを使用する場合は、 uncompress コマンドを使用してファイルを解凍するときにも -n フラグを使用する必要があります。
-q -v フラグによって生成された圧縮統計の表示を抑止します。 複数の -v フラグと -q フラグが同じコマンド・ライン上に存在する場合は、指定されたフラグで最後のものが統計情報の表示を制御します。
-v 圧縮率を書き込みます。
-V 現行バージョンおよびコンパイル・オプションを標準エラーに書き込みます。

パラメーター

表 2. パラメーター
項目 説明
File 圧縮するファイルを指定します。

戻り値

エラーが発生した場合、終了状況は 1 です。 compress コマンドがファイルを圧縮せずに終了すると、状況 2 で終了します。 それ以外の場合、 compress コマンドは 0 の状況で終了します。

compress コマンドは、以下のイベントが発生した場合、それを検出し終了状況 1 で終了します。

  • 入力ファイルが通常のファイルではありません。
  • 入力ファイル名が長すぎるため、 .Z 拡張子を付加できません。
  • 入力ファイルを読み取ることができないか、出力ファイルを書き込むことができません。

終了状況

表 3. 終了状況
項目 説明
0 正常終了。
1 エラーが発生しました。
※2 1 つ以上のファイルのサイズが増加した可能性があるため (および -f フラグが指定されなかったため)、それらのファイルは圧縮されませんでした。
> 2 エラーが発生しました。

セキュリティー

RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「 セキュリティー」の「特権コマンド・データベース」を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

foo ファイルを圧縮し、圧縮率を標準エラーに書き込むには、次のコマンドを入力します。

compress -v foo

foo ファイルが圧縮され、ファイル名が foo.Z に変更されます。