zip / unzip コマンド|Linux での圧縮・解凍の使い方

未分類

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
-dZIP 内の指定ファイルを削除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 でよく使われる圧縮形式の違いを整理します。

形式コマンド特徴複数ファイル主な用途
.gzgzip / gunzip単一ファイルを圧縮。軽量で高速✗(単体のみ)ログ圧縮、パイプ処理
.tar.gztar -czf / tar -xzftar でまとめて gzip で圧縮。Linux 標準的バックアップ、ソース配布
.zipzip / 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 オプションを忘れると中身が含まれません。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント