uncompress ユーティリティは、compress されたファイルを元通りのファイルにリストアし、 ファイル名を拡張子 ``.Z'' を除いたものにリネームします。
compress, uncompress によってリネームされるファイルの名前がすでに存在し、 標準入力が端末の場合は、上書きしてもよいか確認を求めるプロンプトが (標準エラー出力に) 出力されます。 プロンプトが出せなかったり、確認の回答が得られなかった場合には、 ファイルは上書きされません。
ファイル名が指定されなかった場合または file 引数が単一のダッシュ (`- ' ) の場合、標準入力からのデータが圧縮もしくは 展開され、結果が標準出力に出力されます。 入力および出力ファイルが通常ファイルでない場合、圧縮後のサイズの チェックとファイルの上書きチェックは行なわれません。 入力ファイルは削除されず、また入力ファイルの属性は引き継がれません。
オプションは以下のものがあります:
ユーティリティは Lempel-Ziv 修正アルゴリズムを使用します。 ファイル内の重複する部分文字列は、まず、257 以上の 9ビットコードに 置き換えられます。 コードが 512 に達すると、アルゴリズムは 10 ビットコードへ切り替えられ、 -b フラグによって指定された上限 (デフォルトは 16) に達するまで、更に上の ビットを使っていきます。 bits は、9 から 16 の範囲になければなりません。
bits の上限に達すると、 は圧縮率を定期的にチェックします。 圧縮率が上がっているとき、 は既存のコード辞書を使い続けますが、 圧縮率が下がったときは は、部分文字列のテーブルを破棄し、最初からテーブルを作り直します。 こうして、アルゴリズムをファイルの次の "block" へ適用していくことが できます。
ランダムデータの展開または圧縮されたデータの再圧縮を行わないように するためのマジックナンバと共に、圧縮の際に指定された bits パラメータがエンコードされ、圧縮ファイルの中に保存されるため、 uncompress では -b フラグが省略されています。
得られる圧縮の量は、入力サイズ、コードあたりの bits の数, および重複する部分文字列の分布に依存しています。 普通、ソースコードや英語のテキストは、50-60% 圧縮されます。 一般的に (pack コマンドで使われている) Huffman 法、または (compact コマンドで使われている) 最適化 Huffman 法によって得られるより、 圧縮は良く、計算時間もかかりません。
圧縮を試みたファイルの大きさが減少しない場合で -f オプションが指定されなかった場合、ユーティリティ compress は 2 で終了します。