zip / unzip コマンドは、Linux で ZIP 形式のファイルを圧縮・解凍 するためのコマンドです。
ZIP 形式は Windows・macOS・Linux で広く使われる汎用圧縮形式で、複数ファイルやディレクトリをひとつの .zip ファイルにまとめることができます。
構文(Syntax)
zip [オプション] zipファイル名.zip ファイル/ディレクトリ...
unzip [オプション] zipファイル名.zip
zip コマンドの主なオプション
| オプション | 説明 | 使用例 |
|---|---|---|
-r | ディレクトリを再帰的に圧縮 | zip -r archive.zip dir/ |
-0〜-9 | 圧縮率を指定(0: 無圧縮、9: 最高圧縮) | zip -9 archive.zip file.txt |
-e | パスワード付き ZIP を作成 | zip -e secure.zip file.txt |
-j | ディレクトリ構造を含めず圧縮(ジャンク) | zip -j archive.zip dir/file.txt |
-v | 詳細を表示 | zip -rv archive.zip dir/ |
-u | 既存 ZIP に更新されたファイルのみ追加 | zip -u archive.zip updated.txt |
-d | ZIP 内の指定ファイルを削除 | zip -d archive.zip old.txt |
-x | 指定パターンのファイルを除外 | zip -r archive.zip dir/ -x "*.log" |
unzip コマンドの主なオプション
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | カレントディレクトリに解凍 | unzip archive.zip |
-d DIR | 指定ディレクトリに解凍 | unzip archive.zip -d /tmp/ |
-l | 中身の一覧表示(解凍しない) | unzip -l archive.zip |
-o | 確認なしで上書き解凍 | unzip -o archive.zip |
-n | 既存ファイルを上書きしない | unzip -n archive.zip |
-v | 詳細情報を表示 | unzip -v archive.zip |
-P PASSWORD | パスワード付き ZIP を解凍 | unzip -P pass123 secure.zip |
実行例(圧縮)
単一ファイルを圧縮
zip archive.zip file.txt
archive.zip が作成され、file.txt が圧縮されます。元ファイルは残ります。
複数ファイルをまとめて圧縮
zip archive.zip file1.txt file2.txt file3.txt
ディレクトリを再帰的に圧縮
zip -r archive.zip project/
-r を指定することでディレクトリ内のファイルをすべて圧縮します。
特定ファイルを除外して圧縮
zip -r archive.zip project/ -x "*.log" -x "*.tmp"
高圧縮率で圧縮
zip -9 -r archive.zip project/
実行例(解凍)
カレントディレクトリに解凍
unzip archive.zip
指定ディレクトリに解凍
unzip archive.zip -d /tmp/extracted/
解凍せずに中身を確認
unzip -l archive.zip
出力例:
Archive: archive.zip
Length Date Time Name
--------- ---------- ----- ----
1024 2024-01-01 12:00 file1.txt
2048 2024-01-01 12:01 file2.txt
--------- -------
3072 2 files
上書き確認なしで解凍
unzip -o archive.zip
.gz / .tar.gz / .zip の違い
Linux でよく使われる圧縮形式の違いを整理します。
| 形式 | コマンド | 特徴 | 複数ファイル | 主な用途 |
|---|---|---|---|---|
.gz | gzip / gunzip | 単一ファイルを圧縮。軽量で高速 | ✗(単体のみ) | ログ圧縮、パイプ処理 |
.tar.gz | tar -czf / tar -xzf | tar でまとめて gzip で圧縮。Linux 標準的 | ✓ | バックアップ、ソース配布 |
.zip | zip / unzip | 複数ファイルを圧縮。クロスプラットフォーム | ✓ | Windows 連携、ファイル配布 |
Linux サーバー間のファイル転送やバックアップには .tar.gz が多く使われます。Windows と ZIP ファイルをやりとりする場合は .zip 形式が便利です。
関連コマンド
tar: 複数ファイルをまとめて.tar.gz形式で圧縮・解凍gzip: 単一ファイルを.gz形式で圧縮・解凍bzip2:.bz2形式の高圧縮ツールxz:.xz形式のさらに高圧縮ツール
備考
zipコマンドはデフォルトでは多くの Linux ディストリビューションに含まれないため、apt install zip unzip(Debian/Ubuntu)やyum install zip unzip(RHEL/CentOS)でインストールが必要な場合があります。- 圧縮済みファイル(JPEG、MP4 等)はほとんど小さくなりません。テキストやソースコードで効果が高くなります。
- ディレクトリを圧縮する際は
-rオプションを忘れると中身が含まれません。
参考
- manページ: man7.org zip(1)
- manページ: man7.org unzip(1)

コメント