このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:zipコマンドとunzipコマンド

zipコマンドとunzipコマンド

 Linuxでファイルやディレクトリをまとめて管理したい場合や、Windows・macOSとのファイル共有を行う際に広く利用されるのが ZIP形式 です。ZIPは複数のファイルやディレクトリを1つにまとめられるうえ、圧縮によって容量を小さくできるため、バックアップやデータ転送にも便利です。
 Linuxでは zipコマンドunzipコマンド を利用して、ZIP形式での圧縮と解凍を行うことができます。本記事ではRocky Linux環境を前提に、カレントディレクトリにあるダミーファイル dummy1.datdummy2.imgdummy3.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.datdummy1.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 [オプション] 圧縮ファイル名.zip

2.2. 主なオプション

オプション説明
-lZIPファイル内の内容を一覧表示
-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.datdummy2.imgdummy3.bin のような大容量ファイルをZIPにまとめると、転送や管理が容易になる。