このページで解説している内容は、以下の 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アーカイブを作成する。複数のファイル・ディレクトリをまとめて圧縮可能。
unzipZIPファイルを展開する-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
unzipZIPアーカイブを展開元のファイル構造を復元

zip は複数ファイル・フォルダを一つのアーカイブにまとめることができ、
unzip はその内容を安全に展開できます。


まとめ

新Linuxコマンド演習08」では、ZIP形式の圧縮と展開操作を学びました。

  • zip:ファイルやディレクトリをZIP形式に圧縮
  • unzip:ZIPファイルを展開し、元の状態を復元
  • -r オプション:ディレクトリを再帰的に圧縮
  • -l オプション:ZIP内容を展開せずに確認

これらは、日常のファイル管理やバックアップ、データ配布において非常に重要な操作です。
次のステップでは、tarコマンドを組み合わせて、より柔軟なアーカイブ操作を学びましょう。