Linuxでファイルを圧縮・解凍したいときに活躍するのが「gzip」コマンドです。シンプルな操作でファイルサイズを小さくでき、サーバー運用やログ管理、ファイル転送などさまざまな場面で役立ちます。しかし、gzipの基本的な使い方やオプションを知らないと、思わぬトラブルに繋がることもあります。
この記事では、初心者にもわかりやすくgzipコマンドの使い方を解説し、実践的な活用例まで紹介します。gzipで効率よくファイルを扱えるようになりましょう。
gzipコマンドとは?
gzipは、LinuxやUnix系のOSで利用できるファイル圧縮コマンドの1つです。もともとはGNUプロジェクトによって開発されたもので、ファイルのサイズを小さくすることでディスク容量の節約や、ネットワーク越しの転送効率の向上に貢献します。
gzipは、.gz
という拡張子を持つ圧縮ファイルを作成します。単一ファイルの圧縮には非常に適しており、tarコマンドと組み合わせることで複数ファイルの圧縮も可能です。
基本的なgzipの使い方
ファイルを圧縮する
もっとも基本的な使い方は以下のように、対象ファイルを指定するだけです。
gzip filename.txt
このコマンドを実行すると、filename.txt
が圧縮されてfilename.txt.gz
というファイルが作成されます。元のfilename.txt
は削除されるため注意が必要です。
圧縮ファイルを解凍する
gzipで圧縮されたファイル(.gz
)を解凍するには、-d
オプションを使います。
gzip -d filename.txt.gz
または、gunzip
コマンドを使っても同じ結果になります。
gunzip filename.txt.gz
この操作によって、filename.txt.gz
が解凍され、filename.txt
として復元されます。
よく使うオプションの紹介
gzipには便利なオプションがいくつかあります。用途に応じて使い分けると便利です。
-k(元ファイルを残す)
通常、gzipで圧縮すると元ファイルは削除されますが、-k
オプションをつけると元ファイルを残したまま圧縮できます。
gzip -k filename.txt
結果として、filename.txt
とfilename.txt.gz
の両方が残ります。
-v(詳細を表示)
処理の詳細を表示したいときは、-v
(verbose)オプションを使います。
gzip -v filename.txt
圧縮前後のファイルサイズや圧縮率などが表示されます。
-c(標準出力に出力)
標準出力に圧縮データを出力したい場合は、-c
オプションを使います。これにより、パイプやリダイレクトと組み合わせた高度な処理が可能になります。
gzip -c filename.txt > compressed.gz
複数ファイルをまとめて圧縮するには?
gzipは基本的に「単一ファイルのみ」を圧縮するコマンドです。複数ファイルを1つにまとめて圧縮したい場合は、まずtar
コマンドでアーカイブを作成し、それをgzipで圧縮するのが一般的です。
tar -cvf archive.tar file1.txt file2.txt file3.txt
gzip archive.tar
この操作によって、archive.tar.gz
という1つの圧縮ファイルが作成されます。
また、tar
コマンドにはz
オプションがあり、gzip圧縮とアーカイブを一度に行うことも可能です。
tar -czvf archive.tar.gz file1.txt file2.txt file3.txt
解凍するときは以下のようにします。
tar -xzvf archive.tar.gz
gzipでディレクトリを圧縮したいとき
gzip単体ではディレクトリを直接圧縮することはできません。そのため、ディレクトリを圧縮したいときも、tarと組み合わせて使用します。
tar -czvf mydir.tar.gz mydir/
このようにすることで、mydir/
ディレクトリが.tar.gz
ファイルとしてまとめて圧縮されます。
gzipファイルの内容を確認する方法
圧縮ファイルをいちいち展開せずに中身を確認したいこともあります。その場合は、以下のコマンドを使います。
zcat filename.txt.gz
これは、cat
コマンドのように圧縮されたまま内容を表示します。
同様に、ページ単位で確認したい場合はzless
やzmore
も使えます。
zless filename.txt.gz
gzipと他の圧縮形式の違い
Linuxではgzipのほかにも、以下のような圧縮コマンドがあります。
- bzip2:gzipよりも高い圧縮率を誇るが、圧縮・解凍に時間がかかる
- xz:bzip2よりさらに高圧縮。大容量ファイル向き
- zip/unzip:Windows互換の圧縮方式。複数ファイルや階層構造もサポート
用途や必要な圧縮率、互換性などに応じて使い分けるのがポイントです。
gzipコマンドの注意点
- gzipで圧縮したファイルは、gzip対応ソフトウェアでないと解凍できません。
- 元ファイルが自動的に削除されるので、必要な場合は必ず
-k
オプションを使用しましょう。 - 圧縮後のファイルが破損していると、解凍に失敗することがあります。転送時にはチェックサムなどで整合性を確認することをおすすめします。
実践例:ログファイルを毎日圧縮するスクリプト
Linuxサーバーでは、ログファイルがどんどん溜まってディスク容量を圧迫することがあります。定期的にログをgzipで圧縮することで効率的な運用が可能です。
以下は、/var/log
配下の.log
ファイルを毎日圧縮するサンプルスクリプトです。
#!/bin/bash
LOG_DIR="/var/log"
find $LOG_DIR -name "*.log" -type f -mtime +0 -exec gzip {} \;
このスクリプトをcronなどで定期実行すれば、前日分のログが自動で圧縮されます。
まとめ
gzipコマンドは、Linuxのファイル圧縮・解凍において非常に基本的で便利なツールです。
この記事では、基本的な使い方からオプション、tarとの連携方法、実用的なスクリプト例まで解説しました。
覚えておきたいポイントを再確認しましょう。
- 単一ファイルの圧縮に最適
gzip -d
やgunzip
で解凍可能- 複数ファイルやディレクトリは
tar
と組み合わせる -k
,-v
,-c
などのオプションで柔軟に対応
日々の業務でgzipを活用すれば、効率的なファイル管理が実現できます。ぜひこの記事を参考に、実践してみてください。