.Z ファイルは compress コマンドで圧縮された形式です。現在の主流は gzip ですが、古いシステムや過去のバックアップでは compress 形式がまだ残っています。いざ必要になったとき「compress: command not found」と表示されて手が止まる人も少なくありません。
この記事では、compress / uncompress コマンドの基本操作から、gzip との違い、インストール方法、そして現場で遭遇しやすいエラーの対処法まで、実践的に解説します。
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
compress / uncompress とは? LZW圧縮と .Z ファイルの基礎知識
compress は、LZW(Lempel-Ziv-Welch)アルゴリズムを使ってファイルを圧縮するコマンドです。圧縮されたファイルには.Z という拡張子が付きます。uncompress は、その .Z ファイルを元に戻す(解凍する)コマンドです。1980年代から1990年代にかけて、UNIX環境ではファイル圧縮の標準として広く使われていました。しかし、LZWアルゴリズムに特許問題があったことと、後発の gzip の方が圧縮率で優れていたことから、現在ではほとんどの場面で gzip に置き換わっています。
gzip との違い
・圧縮アルゴリズム:compress は LZW、gzip は DEFLATE(LZ77 + ハフマン符号化)を使用・圧縮率:gzip の方が一般的に20~30%ほど圧縮率が高い
・拡張子:compress は .Z、gzip は .gz
・互換性:gzip は .Z ファイルも解凍できる(後方互換あり)が、compress は .gz を扱えない
・現在の標準:ほぼすべてのLinuxディストリビューションに gzip はプリインストールされているが、compress は別途インストールが必要な場合が多い
いつ compress / uncompress が必要になるか
実務で compress を積極的に使う場面はほとんどありません。ただし、以下のケースでは避けられません。・レガシーシステムの保守:古いUNIXサーバーから引き継いだバックアップファイルが .Z 形式で残っている
・古いソフトウェアのアーカイブ:FTPサイトや過去のソースコード配布で .tar.Z 形式が使われている
・シェルスクリプトの互換性:既存の運用スクリプトが compress / uncompress を前提に書かれている
ncompress のインストール方法
最近のLinuxディストリビューションでは、compress / uncompress はデフォルトでインストールされていないことがあります。ncompress パッケージを導入すれば使えるようになります。1. RHEL / CentOS / AlmaLinux(dnf / yum)
# ncompress パッケージをインストールする # dnf install -y ncompress # CentOS 7以前の場合は yum を使用 # yum -y install ncompress
2. Ubuntu / Debian(apt)
# ncompress パッケージをインストールする # apt install -y ncompress
compress --version や which compress でコマンドが使えることを確認してください。compress コマンドの基本的な使い方(ファイルの圧縮)
1. ファイルを圧縮する
もっとも基本的な使い方です。compress コマンドにファイル名を指定すると、元ファイルが削除され、.Z 拡張子の圧縮ファイルが作成されます。# ファイルを圧縮する(元ファイルは削除される) # compress -v proftpd-1.3.4d.tar proftpd-1.3.4d.tar: -- replaced with proftpd-1.3.4d.tar.Z Compression: 40.22%
-v オプションを付けると、圧縮率が表示されます。上の例では 40.22% の圧縮率で処理されたことがわかります。注意すべきは、compress は元ファイルを自動的に削除するという点です。元ファイルを残したまま圧縮したい場合は、次の
-c オプションを使ってください。2. 元ファイルを残したまま圧縮する(-c オプション)
-c オプションを指定すると、圧縮結果が標準出力に出力されます。リダイレクトで別ファイルに保存すれば、元ファイルを残したまま圧縮できます。# 元ファイルを残したまま圧縮する # compress -c proftpd-1.3.4d.tar > proftpd-1.3.4d.tar.Z
-c を使うのが安全です。3. 既存の .Z ファイルを強制上書きする(-f オプション)
同名の .Z ファイルがすでに存在する場合、compress はデフォルトでは上書きを拒否します。-f オプションで強制的に上書きできます。# 既存の .Z ファイルを強制上書きして圧縮する # compress -f proftpd-1.3.4d.tar
-f を付けておくと確実です。uncompress コマンドの基本的な使い方(ファイルの解凍)
1. .Z ファイルを解凍する
uncompress コマンドに .Z ファイルを指定すると、元のファイルに復元されます。compress と同様に、解凍後は .Z ファイルが削除されます。# 解凍前のファイルサイズを確認する $ ls -l proftpd-1.3.5.tar.Z -rw-r--r--. 1 root root 13005949 6月 16 12:17 2014 proftpd-1.3.5.tar.Z # .Z ファイルを解凍する $ uncompress proftpd-1.3.5.tar.Z # 解凍後のファイルサイズを確認する $ ls -l proftpd-1.3.5.tar -rw-r--r--. 1 root root 28354560 6月 16 12:17 2014 proftpd-1.3.5.tar
2. 元の .Z ファイルを残したまま解凍する(-c オプション)
compress と同じく、-c オプションで解凍結果を標準出力に出力できます。# .Z ファイルを残したまま解凍する $ uncompress -c proftpd-1.3.5.tar.Z > proftpd-1.3.5.tar
3. 強制上書きで解凍する(-f オプション)
解凍先に同名ファイルが存在する場合、-f オプションで強制上書きできます。# 同名ファイルが存在しても強制上書きで解凍する $ uncompress -f proftpd-1.3.5.tar.Z
zcat で .Z ファイルの中身を確認する
解凍せずに .Z ファイルの中身だけ見たい場合は、zcat コマンドを使います。zcat は .Z ファイルを解凍して標準出力に表示するコマンドで、圧縮ファイル自体はそのまま残ります。# .Z ファイルの中身を解凍せずに表示する $ zcat proftpd-1.3.5.tar.Z | more
# .tar.Z アーカイブの中身(ファイル一覧)を表示する $ zcat proftpd-1.3.5.tar.Z | tar tf -
応用・実務Tips
1. gzip で .Z ファイルを解凍する
gzip には .Z ファイルの後方互換性があるため、uncompress がインストールされていない環境でも gzip で解凍できます。# gzip を使って .Z ファイルを解凍する $ gzip -d proftpd-1.3.5.tar.Z
2. .tar.Z を一度に展開する
.tar.Z 形式のアーカイブは、uncompress と tar を別々に実行する代わりに、パイプで一度に展開できます。# .tar.Z アーカイブをパイプで一度に展開する $ zcat proftpd-1.3.5.tar.Z | tar xf - # tar の -Z オプションが使える環境ではこちらでも可 $ tar -Zxf proftpd-1.3.5.tar.Z
-Z オプションは compress フィルタを通す指定です。ただし、環境によっては対応していない場合があるため、zcat とパイプの方が確実です。3. .Z と .gz の圧縮率を比較する
同じファイルを compress と gzip で圧縮して、実際の差を確認してみましょう。# compress で圧縮する # compress -c largefile.tar > largefile.tar.Z # ls -l largefile.tar.Z -rw-r--r-- 1 root root 15728640 ... largefile.tar.Z # gzip で圧縮する # gzip -c largefile.tar > largefile.tar.gz # ls -l largefile.tar.gz -rw-r--r-- 1 root root 12582912 ... largefile.tar.gz
トラブルシュート・エラー対処
1. 「compress: command not found」と表示される
compress / uncompress がインストールされていない環境で発生します。# エラー例 $ compress test.tar -bash: compress: command not found # 対処: ncompress パッケージをインストールする # dnf install -y ncompress # または # apt install -y ncompress
gzip -d で .Z ファイルを解凍できるので、そちらを使ってください。2. 「uncompress: not in compressed format」と表示される
指定したファイルが compress 形式(.Z)ではない場合に発生します。# エラー例 $ uncompress test.tar.Z test.tar.Z: not in compressed format
file コマンドで実際の形式を確認してください。# ファイルの実際の形式を確認する $ file test.tar.Z test.tar.Z: gzip compressed data, ...
gzip -d、bzip2 形式であれば bzip2 -d で解凍してください。3. 「already has .Z suffix -- no change」と表示される
すでに .Z 拡張子が付いているファイルに対して compress を実行した場合のメッセージです。compress は二重圧縮を防ぐため、.Z ファイルの圧縮を拒否します。4. 圧縮してもファイルサイズが変わらない
元ファイルがすでに圧縮済み(JPEG画像、MP4動画など)の場合、compress で圧縮してもサイズはほとんど変わりません。これは compress に限らず gzip でも同様です。圧縮の効果があるのは、テキストファイルやログファイルなど、データの冗長性が高いファイルです。本記事のまとめ
compress / uncompress は現在の主流ではありませんが、レガシーシステムの保守や古いアーカイブの取り扱いで必要になる場面があります。以下のテーブルでコマンドを整理しておきます。| やりたいこと | コマンド |
|---|---|
| ファイルを圧縮する | compress ファイル名 |
| 圧縮率を表示しながら圧縮する | compress -v ファイル名 |
| 元ファイルを残して圧縮する | compress -c ファイル名 > ファイル名.Z |
| .Z ファイルを解凍する | uncompress ファイル名.Z |
| 元の .Z ファイルを残して解凍する | uncompress -c ファイル名.Z > ファイル名 |
| .Z ファイルの中身を解凍せずに表示する | zcat ファイル名.Z | more |
| .tar.Z をパイプで一度に展開する | zcat ファイル名.tar.Z | tar xf - |
| gzip で .Z ファイルを解凍する | gzip -d ファイル名.Z |
| ncompress をインストールする(RHEL系) | dnf install -y ncompress |
| ncompress をインストールする(Debian系) | apt install -y ncompress |
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
※登録30秒/合わなければ解除3秒
