Linuxを使っていると、拡張子が「.gz」の圧縮ファイルに出会うことがあります。これは「gzip」という圧縮形式であり、特にログファイルやバックアップデータなどでよく使われます。これらのファイルを解凍するためには、専用のコマンドである「gunzip」を使うのが一般的です。本記事では、gunzipコマンドの基本的な使い方から、複数ファイルの解凍方法、よくあるエラーへの対処法まで、わかりやすく丁寧に解説します。Linux初心者の方でも安心して読み進められる内容になっています。
gunzipコマンドとは?
「gunzip」は、gzipで圧縮されたファイル(拡張子が .gz のファイル)を解凍するためのLinuxコマンドです。gzipで圧縮されたファイルは、そのままでは中身を見ることができません。そこで、gunzipコマンドを使って解凍することで、元のファイルを取り出すことができます。
gunzipは、gzipコマンドと同様にGNUプロジェクトによって開発されており、ほとんどのLinuxディストリビューションで標準インストールされています。
基本的な構文
gunzip ファイル名.gz
例えば、example.txt.gz
というファイルがある場合、次のコマンドで解凍できます。
gunzip example.txt.gz
このコマンドを実行すると、example.txt.gz
は削除され、元の example.txt
ファイルが復元されます。
gunzipの主なオプション
gunzipはシンプルなコマンドですが、いくつかの便利なオプションも用意されています。
-c オプション(標準出力に出力)
ファイルを解凍しつつも、元ファイルを削除したくない場合に便利なのが -c
オプションです。
gunzip -c example.txt.gz > example.txt
このコマンドでは、解凍した結果を標準出力(画面)に出力し、それをリダイレクトで新しいファイルとして保存しています。元の .gz
ファイルはそのまま残ります。
-f オプション(強制的に解凍)
既に同名のファイルが存在している場合、gunzipは確認を求めるかエラーになりますが、-f
オプションをつけることで強制的に上書き解凍が可能です。
gunzip -f example.txt.gz
-k オプション(元ファイルを残す)
gunzipの標準動作では、解凍後に.gz
ファイルが削除されますが、-k
オプションを使うと、元ファイルを残したまま解凍できます。
gunzip -k example.txt.gz
複数の.gzファイルを一括解凍する方法
ディレクトリに複数の.gz
ファイルがある場合、それらを一括で解凍することも可能です。たとえば以下のようなコマンドで一括処理ができます。
gunzip *.gz
このコマンドを実行すると、カレントディレクトリにあるすべての.gz
ファイルが解凍され、元のファイルが復元されます。
もしサブディレクトリも含めて全ての.gzファイルを解凍したい場合は、findコマンドと組み合わせます。
find . -name "*.gz" -exec gunzip {} \;
gunzipでよくあるエラーと対処法
エラー1:not in gzip format
gzip: example.txt: not in gzip format
このエラーは、拡張子が .gz
になっていても、実際にはgzip形式で圧縮されていない場合に出ます。ファイルの中身を確認するか、他の圧縮形式である可能性を考慮して、file
コマンドなどで形式を確認しましょう。
file example.txt.gz
エラー2:Permission denied
gunzip: example.txt.gz: Permission denied
このエラーは、解凍しようとしているファイルに対して書き込み権限がない場合に発生します。sudo
を使って管理者権限で実行するか、chmod
で権限を変更する必要があります。
sudo gunzip example.txt.gz
または
chmod +w example.txt.gz
gunzip example.txt.gz
gunzip以外の解凍方法(補足)
gunzipは便利ですが、gzipで圧縮されたファイルは他のコマンドでも解凍可能です。
1. zcatコマンドを使う
解凍せずに中身だけ確認したいときにはzcat
コマンドが便利です。
zcat example.txt.gz
2. tarとの併用(.tar.gzの解凍)
.tar.gz
や.tgz
ファイルのように、tarアーカイブをgzip圧縮した形式の場合は、gunzipではなくtarコマンドを使う方が簡単です。
tar -xvzf archive.tar.gz
gunzipが使えないときの代替手段
何らかの理由でgunzipコマンドがインストールされていない場合は、次のようにgzipコマンドに -d
オプションをつけて使うことができます。
gzip -d example.txt.gz
このコマンドはgunzipと全く同じ動作をします。実際、gunzipはgzipの一部として提供されています。
実用例:ログローテートされたファイルの解凍
多くのLinuxシステムでは、ログファイルが自動的に.gz
形式でローテート保存されます。たとえば、次のようなファイルです。
/var/log/syslog.1.gz
このファイルを解凍するには、次のように実行します。
sudo gunzip /var/log/syslog.1.gz
ログの中身を見たいだけなら、解凍せずにzcatでもOKです。
zcat /var/log/syslog.1.gz | less
まとめ
gunzipコマンドは、gzip形式の圧縮ファイルを簡単に解凍できる非常に便利なツールです。基本の使い方だけでなく、オプションや他のコマンドと組み合わせることで、より柔軟にファイルを扱うことができます。Linux環境では日常的に使う場面が多いため、ぜひ使いこなせるようにしておきましょう。