このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linux基礎:zipコマンドとunzipコマンド

zipコマンドとunzipコマンド
Linuxでファイルやディレクトリをまとめて管理したい場合や、Windows・macOSとのファイル共有を行う際に広く利用されるのが ZIP形式 です。ZIPは複数のファイルやディレクトリを1つにまとめられるうえ、圧縮によって容量を小さくできるため、バックアップやデータ転送にも便利です。
Linuxでは zipコマンド と unzipコマンド を利用して、ZIP形式での圧縮と解凍を行うことができます。本記事ではRocky Linux環境を前提に、カレントディレクトリにあるダミーファイル dummy1.dat、dummy2.img、dummy3.bin を対象に、zip/unzipの基本操作を解説します。

1.zipコマンドによる圧縮
1.1. zipコマンドの基本
zip コマンドは、指定したファイルやディレクトリをZIP形式にまとめるコマンドです。gzipと異なり、圧縮後のZIPファイル名を必ず指定する必要があります。また、元のファイルは削除されずに残ります。
書式
zip [オプション] 圧縮後ファイル名.zip 対象ファイルやディレクトリ1.2. 主なオプション
| オプション | 説明 |
|---|---|
| -r | ディレクトリを再帰的に圧縮 |
| -9 | 最大圧縮率で圧縮 |
| -q | 実行時のメッセージを表示しない。 |
| -e | パスワード付きZIPを作成 |
1.3 使用例
ここでは、カレントディレクトリにあるダミーファイルを対象に圧縮を行います。
【例1】単一ファイルを圧縮
[user@rocky9 ~]$ zip dummy1.zip dummy1.dat
adding: dummy1.dat (deflated 100%)
[user@rocky9 ~]$ ls -lh dummy1.zip
-rw-r--r--. 1 user user 11K 8月 26 10:27 dummy1.zip→ dummy1.dat が dummy1.zip に圧縮され、元のファイルも残っている。
【例2】複数ファイルをまとめて圧縮
[user@rocky9 ~]$ zip data_set.zip dummy1.dat dummy2.img dummy3.bin
adding: dummy1.dat (deflated 100%)
adding: dummy2.img (deflated 100%)
adding: dummy3.bin (deflated 100%)
[user@rocky9 ~]$ ls -lh data_set.zip
-rw-r--r--. 1 user user 160K 8月 26 10:29 data_set.zip→ 3つのダミーファイルが1つのアーカイブ data_set.zip にまとめられた。
2.unzipコマンドによる展開
2.1. unzipコマンドの基本
unzip コマンドは、zip形式のアーカイブを展開するために利用されます。展開する際、既存のファイルがある場合は上書き確認が求められます。
書式
unzip [オプション] 圧縮ファイル名.zip2.2. 主なオプション
| オプション | 説明 |
|---|---|
| -l | ZIPファイル内の内容を一覧表示 |
| -d | 指定ディレクトリに展開 |
| -o | 上書き確認をせずに展開 |
| -q | 実行時のメッセージを表示しない。 |
2.3. 使用例
【例3】ZIPファイルを解凍
[user@rocky9 ~]$ unzip dummy1.zip
Archive: dummy1.zip
replace dummy1.dat? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: dummy1.dat→ dummy1.dat が展開された。
【例4】複数ファイルを含むZIPを展開
[user@rocky9 ~]$ unzip data_set.zip
Archive: data_set.zip
replace dummy1.dat? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: dummy1.dat
replace dummy2.img? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: dummy2.img
replace dummy3.bin? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: dummy3.bin→ 3つのダミーファイルがまとめて解凍される。
【例5】ZIPの内容を確認(展開せずに中身を表示)
[user@rocky9 ~]$ unzip -l data_set.zip
Archive: data_set.zip
Length Date Time Name
--------- ---------- ----- ----
10485760 08-26-2025 01:08 dummy1.dat
104857600 08-26-2025 01:10 dummy2.img
52428800 08-26-2025 03:05 dummy3.bin
--------- -------
167772160 3 files→ ZIPに含まれるファイルの一覧を確認できる。
3.zip/unzipの実用例
3.1. バックアップとしてまとめる
大量のファイルを一つのZIPにまとめておけば、USBやクラウドに転送する際に便利です。
3.2. OS間でのデータ共有
WindowsやmacOSとのファイル交換時、Linuxで作成したZIPを渡すことでスムーズにやり取り可能です。
3.3. パスワード付きZIPの作成
セキュリティを考慮したい場合は、zip -e を利用すると解凍時にパスワードが必要なZIPを作成できます。
まとめ
- zipコマンド はファイルやディレクトリをまとめて圧縮するコマンドで、
-rオプションを使えばディレクトリごとまとめられる。 - unzipコマンド はZIPファイルを展開するコマンドで、
-lや-dオプションを使えば中身の確認や展開先の指定も可能。 - gzipとの違いは「複数ファイルやディレクトリをまとめられること」と「元のファイルが削除されないこと」である。
dummy1.dat、dummy2.img、dummy3.binのような大容量ファイルをZIPにまとめると、転送や管理が容易になる。
