Linuxのgzipコマンド完全ガイド!初心者でもわかるファイル圧縮の基本と使い方
生徒
「先生、Linuxでファイルを圧縮したいときって、どうすればいいですか?」
先生
「Linuxではgzip(ギップゼット)コマンドを使うことで、簡単にファイルを圧縮できます。」
生徒
「gzipって、ファイルを小さくするためのコマンドですよね?でも初心者でも使えますか?」
先生
「もちろんです。基本的な使い方を順番に説明していきます。一緒にやってみましょう。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. gzipコマンドとは?
gzip(ギップゼット)コマンドは、Linuxでファイルを圧縮してサイズを小さくするための基本コマンドです。圧縮したファイルは.gzという拡張子が付きます。大きなログファイルやドキュメントを保存する際に、ディスク容量を節約したり、ファイル転送を速くするのに便利です。
WindowsでいうZIP圧縮に似ていますが、Linuxのターミナル上で文字だけで操作する点が特徴です。gzipは高速で、複数のファイルやディレクトリも効率的に扱えます。
2. gzipでファイルを圧縮する基本操作
まずは単一のファイルを圧縮する方法です。例えばsample.txtを圧縮する場合は次のように実行します。
gzip sample.txt
実行後、sample.txtは自動的にsample.txt.gzという圧縮ファイルに変わります。
3. gzipで複数ファイルをまとめて圧縮する方法
複数のファイルをまとめて圧縮する場合は、gzipとワイルドカード(*)を使うと便利です。例えば、すべての.logファイルを圧縮する場合は以下の通りです。
gzip *.log
これでディレクトリ内のすべてのログファイルが圧縮され、それぞれ.gzの拡張子が付きます。
4. gzip圧縮を確認する方法
圧縮後に正しく.gzファイルが作られたかを確認するには、lsコマンドを使います。
ls -l
-rw-r--r-- 1 user user 1024 3月 24 10:00 sample.txt.gz
-rw-r--r-- 1 user user 2048 3月 24 10:05 log1.log.gz
-rw-r--r-- 1 user user 4096 3月 24 10:06 log2.log.gz
ファイルサイズが元より小さくなっていることも確認できます。
5. gzipで圧縮を解除(解凍)する方法
gzipで圧縮したファイルは、gunzip(ガンジップ)コマンドで元に戻すことができます。例えば、sample.txt.gzを解凍する場合は次の通りです。
gunzip sample.txt.gz
解凍後、sample.txtが元の状態で復元されます。
6. gzipのオプションを使った便利な圧縮方法
gzipには圧縮率を指定したり、元ファイルを残したまま圧縮するオプションがあります。代表的なものを紹介します。
-c: 標準出力に圧縮データを出力(元ファイルは残す)-v: 圧縮状況を表示-d: 解凍(gunzipと同じ)
例えば、元のファイルを残したまま圧縮する場合は次のように使います。
gzip -c sample.txt > sample.txt.gz
7. gzipとtarを組み合わせてディレクトリごと圧縮する方法
単一ファイルだけでなく、ディレクトリ全体をまとめて圧縮したい場合はtar(タール)コマンドと組み合わせます。
tar -czvf backup.tar.gz my_folder/
このコマンドでmy_folderディレクトリ全体を圧縮し、backup.tar.gzとして保存できます。
8. gzipのメリットと活用シーン
gzipを使うメリットは、ディスク容量の節約だけでなく、ファイル転送の高速化にもつながることです。特にLinuxサーバーで大量のログファイルやバックアップデータを扱う場合、圧縮は必須の作業です。また、scpやrsyncなどの転送ツールと組み合わせることで、通信量を減らして効率的にデータを移動できます。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
この記事では、Linuxでファイルやディレクトリを圧縮・解凍するための基本コマンドであるgzip(ギップゼット)について詳しく解説しました。まずgzipの基本操作として、単一ファイルを圧縮する方法から始め、sample.txtを圧縮してsample.txt.gzに変換する手順を紹介しました。これにより、ファイルサイズを小さくしてディスク容量を節約したり、ファイル転送を高速化することが可能です。
次に、複数のファイルをまとめて圧縮する方法としてワイルドカード(*)を活用し、例えばすべての.logファイルをまとめて圧縮する手順を解説しました。さらに、圧縮後に正しくファイルが作成されているか確認する方法として、ls -lコマンドでサイズや拡張子を確認する手順も示しました。これにより、圧縮処理が確実に実行されたかを目視で確認できます。
圧縮したファイルを元に戻す方法としては、gunzipコマンドを使った解凍手順を紹介しました。sample.txt.gzを解凍すると元のsample.txtに戻るため、必要に応じて圧縮と解凍を柔軟に行うことができます。また、gzipには便利なオプションもあり、-cで元ファイルを残したまま圧縮したり、-vで圧縮状況を確認したり、-dで解凍することも可能です。
単一ファイルだけでなくディレクトリ全体を圧縮したい場合は、tarコマンドとgzipを組み合わせる方法を学びました。tar -czvf backup.tar.gz my_folder/のように実行することで、ディレクトリ全体をひとつの圧縮ファイルとしてまとめられます。この手法は、Linuxサーバー上で大量のファイルを扱う場合に特に有効で、バックアップ作業やログ管理にも適しています。
gzipを活用することで、ディスク容量の節約だけでなく、ファイル転送速度の向上や効率的なデータ管理が可能になります。特に、scpやrsyncなどの転送ツールと組み合わせることで、ネットワーク通信量を減らしながら安全にデータを移動できます。また、圧縮ファイルの管理や定期的なバックアップ作業にも役立つため、Linuxを使う上で知っておくべき基本的なコマンドです。
さらに、圧縮や解凍の手順を効率化するために、スクリプトを活用することも可能です。例えば、特定のディレクトリ内の.logファイルを一括で圧縮する簡単なスクリプトは以下の通りです。
#!/bin/bash
# ログファイルをまとめて圧縮するスクリプト
cd /home/user/logs
gzip *.log
echo "すべてのログファイルを圧縮しました。"
このようにスクリプト化することで、定期的な圧縮作業を自動化でき、手作業でコマンドを入力する手間を省くことができます。Linux環境では、このような自動化が運用効率を大幅に向上させます。
生徒
「先生、gzipを使うと単にファイルを小さくするだけじゃなくて、ディレクトリごとのバックアップも作れるんですね。」
先生
「その通りです。tarと組み合わせれば、ディレクトリ全体をまとめて圧縮できますし、バックアップやログ管理にも活用できます。」
生徒
「オプションも色々あって、元のファイルを残したまま圧縮できるのは便利ですね。スクリプトで自動化もできるんですね。」
先生
「はい。-cや-vを組み合わせたり、bashスクリプトを使った自動化で日々の作業効率を高めることができます。Linuxでのファイル圧縮は、知っておくと業務でも個人作業でも非常に役立ちます。」
生徒
「なるほど、これでファイルの管理や転送がすごく楽になりますね。これからはgzipを積極的に使ってみます。」
先生
「その意気です。まずは基本操作を覚えて、徐々にオプションやスクリプトも使いこなせるようにしましょう。」