このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習08

新Linuxコマンド演習08 概要
「新Linuxコマンド演習08」では、zipコマンドとunzipコマンドを用いてファイルやディレクトリを圧縮・解凍する方法を学びます。
Linuxではテキストファイルや設定ファイルをまとめて保管・配布する場面が多く、ZIP形式は他OS(Windows等)との互換性も高いため非常に便利です。
ここでは、次の2つのコマンドを扱います。
- zip コマンド:ファイル・ディレクトリを圧縮してZIPアーカイブを作成する。
- unzip コマンド:ZIPアーカイブを展開する。
gzipとは異なり、zipは複数ファイル・ディレクトリをまとめて圧縮でき、Windows環境でも利用可能です。

zip / unzip コマンドの比較表
| コマンド | 主な機能 | 主なオプション | 説明 |
|---|---|---|---|
| zip | ファイルやディレクトリを圧縮する | -r:ディレクトリを再帰的に圧縮 -v:詳細表示 | ZIPアーカイブを作成する。複数のファイル・ディレクトリをまとめて圧縮可能。 |
| unzip | ZIPファイルを展開する | -l:ZIPファイル内の一覧を表示 -d:展開先ディレクトリを指定 | ZIPファイルを解凍し、元のファイル構造を復元する。 |
この表から分かるように、zip はアーカイブ作成、unzip は展開・確認操作に使われます。
特に -r オプションを使うと、ディレクトリ階層を保ったまま圧縮できる点が特徴です。
演習問題+模範解答例
演習01:ファイルをZIP形式で圧縮する
問題
/etc/servicesファイルをホームディレクトリにコピーし、zipコマンドを使ってservices.zipという名前で圧縮してください。
模範解答例
[suzuki@AlmaLinux ~]$ cp /etc/services .
[suzuki@AlmaLinux ~]$ zip services.zip services
adding: services (deflated 79%)
[suzuki@AlmaLinux ~]$ ls -l
合計 820
(省略)
-rw-r--r--. 1 suzuki suzuki 692252 11月 5 00:01 services
-rw-r--r--. 1 suzuki suzuki 142667 11月 5 00:01 services.zip解説
zip コマンドでは、圧縮後のファイル名(例:services.zip)を明示的に指定します。
gzip と違い、元のファイル(services)は削除されません。
ZIPファイルはWindowsなど他OSでも展開できるため、データ共有にも便利です。
演習02:ZIPファイルを展開する
問題
services.zipを解凍し、上書き確認が出た場合は「y」と入力して展開してください。
模範解答例
[suzuki@AlmaLinux ~]$ unzip services.zip
Archive: services.zip
replace services? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: services解説
unzip はZIPファイルを展開し、元のファイルを復元します。
同名ファイルが存在する場合は、上書き確認プロンプトが表示されます。
自動で上書きしたい場合は、-o オプションを使用します。
演習03:ディレクトリを再帰的に圧縮する
問題
sub/sub-sub/sub-sub-sub という3階層のディレクトリを作成し、
親ディレクトリも含めて再帰的にZIP圧縮してください。
模範解答例
[suzuki@AlmaLinux ~]$ mkdir -p sub/sub-sub/sub-sub-sub
[suzuki@AlmaLinux ~]$ zip -r sub.zip sub
adding: sub/ (stored 0%)
adding: sub/sub-sub/ (stored 0%)
adding: sub/sub-sub/sub-sub-sub/ (stored 0%)
[suzuki@AlmaLinux ~]$ ls -l
合計 912
(省略)
drwxr-xr-x. 3 suzuki suzuki 21 11月 5 00:15 sub
-rw-r--r--. 1 suzuki suzuki 486 11月 5 00:15 sub.zip解説
-r オプションは「再帰的に圧縮する」指定です。
ディレクトリ構造をそのまま保持したZIPファイルを作成できます。
階層の深いディレクトリをまとめる際に便利です。
演習04:ZIPファイルの内容を確認する
問題
sub.zip に含まれるファイルとディレクトリの一覧を表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ unzip -l sub.zip
Archive: sub.zip
Length Date Time Name
--------- ---------- ----- ----
0 11-05-2025 00:15 sub/
0 11-05-2025 00:15 sub/sub-sub/
0 11-05-2025 00:15 sub/sub-sub/sub-sub-sub/
--------- -------
0 3 files解説
unzip -l オプションは、ZIPファイルを展開せずに内容を確認するために使用します。
バックアップ確認や、内容の事前チェックに非常に便利です。
演習05:作業後のクリーンアップ
問題
この演習で作成したファイルとディレクトリを削除してください。
模範解答例
[suzuki@AlmaLinux ~]$ rm services services.zip sub.zip
[suzuki@AlmaLinux ~]$ rmdir -p sub/sub-sub/sub-sub-sub
[suzuki@AlmaLinux ~]$ ls
Desktop Downloads Pictures Templates
Documents Music Public Video解説
rmdir -p は空ディレクトリを親階層ごと削除します。
ZIP練習後は不要なデータを削除し、環境をクリーンに保ちましょう。
zip と unzip の動作イメージ
| 操作 | 処理内容 | 結果ファイル |
|---|---|---|
| zip | ファイルやディレクトリをまとめて圧縮 | example.zip |
| unzip | ZIPアーカイブを展開 | 元のファイル構造を復元 |
zip は複数ファイル・フォルダを一つのアーカイブにまとめることができ、
unzip はその内容を安全に展開できます。
まとめ
「新Linuxコマンド演習08」では、ZIP形式の圧縮と展開操作を学びました。
- zip:ファイルやディレクトリをZIP形式に圧縮
- unzip:ZIPファイルを展開し、元の状態を復元
- -r オプション:ディレクトリを再帰的に圧縮
- -l オプション:ZIP内容を展開せずに確認
これらは、日常のファイル管理やバックアップ、データ配布において非常に重要な操作です。
次のステップでは、tarコマンドを組み合わせて、より柔軟なアーカイブ操作を学びましょう。
