新Linux入門|ファイルの圧縮と解凍

Linuxでは、たくさんのファイルをまとめたり、容量を小さくして保存したい場面がよくあります。
例えば、バックアップを取るときや、ファイルを他のサーバーへ転送するときなどですね💡

そんなときに使うのが「圧縮(compression)」と「解凍(decompression)」です。
圧縮はファイルサイズを小さくして保存することで、解凍は圧縮ファイルを元に戻す操作です。

Linux では、主に以下のコマンドを使って圧縮・解凍を行います👇

コマンド主な用途特徴
tarファイルやディレクトリをまとめてアーカイブgzipやbzip2と組み合わせ可能
gzip単一ファイルをgzip形式で圧縮シンプルで高速
bzip2高圧縮率でファイルをbzip2形式で圧縮処理は少し遅め
unzipZIP形式のアーカイブを展開Windowsとの互換性が高い

🎁 tarコマンド(アーカイブの作成・展開)

まずは、もっとも多く使われる tar コマンドです。
tarは、複数のファイルやディレクトリを1つのアーカイブファイルにまとめるコマンドです。
さらにオプションを付けることで、gzipやbzip2で圧縮も行えます。

🔧 コマンド書式

tar [オプション] [アーカイブファイル名] [対象ファイルやディレクトリ]

📋 主なオプション

オプション説明
-c新しいアーカイブを作成する。
-xアーカイブを展開する。
-f [ファイル名]アーカイブファイル名を指定する。
-v作業の進捗を詳しく表示する。
-zgzipで圧縮・解凍する。
-jbzip2で圧縮・解凍する。
-C [ディレクトリ]展開先のディレクトリを指定する。

💡 使用例①:ディレクトリを圧縮

[suzuki@AlmaLinux ~]$ tar -czvf backup.tar.gz documents/

📘 documentsディレクトリをgzip形式で圧縮し、backup.tar.gzを作成します。

💡 使用例②:圧縮ファイルを展開

[suzuki@AlmaLinux ~]$ tar -xzvf backup.tar.gz

📦 backup.tar.gzを解凍して、元のフォルダ構造を復元します。

💬 -v オプションを付けると、処理中のファイル名が表示されるので進捗がわかりやすいですよ!

💨 gzipコマンド(軽量・高速な圧縮)

gzip はシンプルで高速な圧縮コマンドです。
単一ファイルを .gz 形式に圧縮し、サイズを削減します。

🔧 コマンド書式

gzip [オプション] [ファイル名]

📋 主なオプション

オプション説明
-dgzip形式のファイルを解凍する。
-k元のファイルを削除しない(残す)。
-rディレクトリを再帰的に処理する。

💡 使用例①:ファイルを圧縮

[suzuki@AlmaLinux ~]$ gzip report.txt

📁 report.txt が report.txt.gz に変換され、元のファイルは削除されます。

💡 使用例②:ファイルを解凍(元ファイルも残す)

[suzuki@AlmaLinux ~]$ gzip -dk report.txt.gz

💬 -k を付けると、report.txt.gz を残したまま解凍できます。

🧮 bzip2コマンド(高圧縮率で節約)

bzip2 は、gzipよりも圧縮率が高く、ファイルサイズをより小さくできます。
ただし、圧縮・解凍に少し時間がかかるのが特徴です。

🔧 コマンド書式

bzip2 [オプション] [ファイル名]

📋 主なオプション

オプション説明
-dbzip2形式のファイルを解凍する。
-k元のファイルを残す。
-z圧縮を実行する。

💡 使用例①:ファイルを圧縮

[suzuki@AlmaLinux ~]$ bzip2 data.csv

💾 data.csv が data.csv.bz2 に圧縮されます。

💡 使用例②:ファイルを解凍

[suzuki@AlmaLinux ~]$ bzip2 -dk data.csv.bz2

📂 元の data.csv を復元しつつ、圧縮ファイルも残します。

🗂️ unzipコマンド(ZIP形式の展開)

unzip コマンドは、Windowsなどでよく使われるZIP形式のファイルを展開します。
異なるOS間でファイルをやり取りする際にとても便利です。

🔧 コマンド書式

unzip [オプション] [ZIPファイル名]

📋 主なオプション

オプション説明
-d [ディレクトリ]展開先を指定する。
-lアーカイブ内のファイルリストを表示する。
-o上書き確認を省略して展開する。
-qメッセージを抑制して静かに処理する。
-v詳細情報を表示する。
-x特定のファイルを展開対象から除外する。

💡 使用例①:ZIPファイルの中身を確認

[suzuki@AlmaLinux ~]$ unzip -l archive.zip

💡 使用例②:ZIPを展開

[suzuki@AlmaLinux ~]$ unzip archive.zip -d /tmp/

📦 archive.zip の内容を /tmp ディレクトリに展開します。

🧭 圧縮形式の比較まとめ

形式使用コマンド拡張子特徴
gzipgzip / gunzip.gz高速で軽量。一般的によく使われる。
bzip2bzip2 / bunzip2.bz2高圧縮率。やや時間がかかる。
tar.gztar -z.tar.gz複数ファイルをまとめてgzip圧縮
tar.bz2tar -j.tar.bz2高圧縮率でまとめて保存
zipzip / unzip.zipWindowsでも扱いやすい形式

💬 まとめ

ファイルの圧縮と解凍は、Linuxを扱ううえで欠かせないスキルです📘
バックアップ、データ転送、ログの保存など、さまざまな場面で使われます。

💡 これだけ覚えよう!

  • tar -czvf :ディレクトリをまとめてgzip圧縮
  • tar -xzvf :gzipアーカイブを展開
  • gzip / bzip2 :単体ファイルの圧縮
  • unzip :ZIP形式の展開

これらを使いこなせば、Linux でのファイル管理がぐっと快適になります✨
次にバックアップを作るとき、ぜひ tar -czvf を試してみてくださいね😉