【2026年7月最新】Linuxのzipコマンド完全ガイド|圧縮・解凍・パスワード・-rオプション・Claude Code活用法
この記事の内容
Linuxでファイルを配布・バックアップ・転送する際にzipコマンドは日常的に使います。Windowsで一般的な.zip形式はLinux/Macでも標準的に扱えるため、「複数のファイルをまとめて送りたい」「古いログファイルをアーカイブしたい」「パスワードをかけてファイルを保護したい」といった場面で活躍します。
ただしzipコマンドの基本(圧縮・解凍)しか知らないと、「ディレクトリごと圧縮したい」「パスワードをかけたい」「圧縮率を変えたい」などの場面で困ることがあります。また、Linux独自のtar.gz・bz2・7zとの使い分けも理解が必要です。
この記事ではLinuxのzipコマンドに関する全知識を体系的に解説します。さらにClaude Codeを使って圧縮・バックアップスクリプトを自動生成する方法も紹介します。
01 ZIP BASICS Linuxのzipコマンドとは?圧縮の仕組みと用途 .zip形式でファイルを圧縮・アーカイブするLinux標準コマンド
Linuxのzipコマンドは、1つまたは複数のファイル・ディレクトリを.zip形式に圧縮してアーカイブするコマンドです。.zip形式はWindows・Mac・Linuxの全プラットフォームで扱える最も普及した圧縮形式のため、異なるOS間でのファイルのやりとりに最適です。
📚 用語解説
zipコマンド(zip/unzip):Linuxでファイルを.zip形式に圧縮するコマンド。「zip アーカイブ名 ファイル名」で圧縮し、「unzip アーカイブ名.zip」で解凍する。.zip形式はDefrost圧縮アルゴリズム(DEFLATE)を使用し、Windows・Mac・Linuxの全プラットフォームで標準対応している。tar.gzがLinux/Macに特化しているのに対し、zipはWindowsとのクロスプラットフォーム配布に向く。
| 圧縮形式 | 対応OS | 圧縮率 | 向いている用途 |
|---|---|---|---|
| .zip | Windows/Mac/Linux全対応 | 普通 | クロスプラットフォーム配布・Webダウンロード |
| .tar.gz (.tgz) | Mac/Linux中心 | 高い | サーバーバックアップ・ソースコード配布 |
| .tar.bz2 | Mac/Linux | 高い(gzより遅い) | 高圧縮率が必要なバックアップ |
| .7z | 主にWindows(7-zip) | 非常に高い | 最高圧縮率が必要な場合 |
| .gz | Mac/Linux | 普通〜高い | 単一ファイルの圧縮(tarと組み合わせ) |
zipコマンドが必要な場面の例を整理します。
02 ZIP OPTIONS zipコマンドの基本構文とオプション全種類 zip [オプション] アーカイブ名 ファイル名 の全オプションを完全解説
zipコマンドの基本構文は「zip [オプション] アーカイブ名.zip ファイル名」です。アーカイブ名の.zip拡張子は省略しても自動で付加されます。主なオプションの全一覧を確認しましょう。
| オプション | 意味 | 使用例 | 動作 |
|---|---|---|---|
| -r | ディレクトリを再帰的に圧縮 | zip -r backup.zip mydir/ | ディレクトリとその中身を全て圧縮 |
| -e | パスワードを設定 | zip -e secret.zip file.txt | パスワード付きzip作成 |
| -0〜-9 | 圧縮レベル(0=なし、9=最大) | zip -9 high.zip file.txt | 圧縮率と処理速度のトレードオフ |
| -v | 処理の詳細を表示(verbose) | zip -v backup.zip *.txt | 各ファイルの圧縮状況を表示 |
| -u | 既存のzipを更新 | zip -u backup.zip newfile.txt | 新しいファイルまたは更新ファイルのみ追加 |
| -d | zipからファイルを削除 | zip -d backup.zip oldfile.txt | 指定ファイルをzipから取り除く |
| -l | Linuxの改行コードをWindowsに変換 | zip -l text.zip file.txt | LF→CRLF変換してzip |
| -j | ディレクトリ構造を無視(フラット化) | zip -j flat.zip dir/file.txt | パス情報を除いてファイルのみzip |
| -x | 指定パターンを除外 | zip -r backup.zip . -x "*.log" | .logファイルを除外してzip |
03 ZIP BASIC ファイルを圧縮:zip 基本的な使い方 zip アーカイブ名 ファイル名 — 最もシンプルな圧縮コマンドの実例
zipコマンドで1つのファイルを圧縮する最もシンプルな形は「zip アーカイブ名 ファイル名」です。
# 1ファイルを圧縮 $ zip archive.zip file.txt adding: file.txt (deflated 47%) # 圧縮後にlsで確認 $ ls -la -rw-r--r-- 1 user group 5120 Jul 18 14:30 file.txt -rw-r--r-- 1 user group 2710 Jul 18 14:31 archive.zip # .zip拡張子は省略可能(自動で付加される) $ zip archive file.txt # → archive.zip が作成される
「zip archive file.txt」と書いても自動的に「archive.zip」が作成されます。ただし、スクリプトで使う場合は.zipを明示的に書いた方が可読性が高くなります。
📚 用語解説
deflate(DEFLATEアルゴリズム):.zip形式で使われる圧縮アルゴリズム。LZ77とハフマン符号化を組み合わせた手法で、テキストファイルや構造化データは高い圧縮率を発揮する。「deflated 47%」と表示されたら元のファイルサイズから47%削減されたことを意味する。画像(JPEG等)や動画ファイルはすでに圧縮済みのため、deflateによる圧縮率はほぼ0%になる。
# 圧縮率を指定する(-0〜-9) $ zip -0 nocompress.zip file.txt # 圧縮なし(高速) $ zip -6 normal.zip file.txt # デフォルト(通常) $ zip -9 maxcompress.zip file.txt # 最高圧縮率(低速) # ファイルサイズを確認して比較 $ ls -la *.zip
04 ZIP MULTIPLE 複数ファイルを一括圧縮する方法 スペース区切り・ワイルドカード・パターン指定で複数ファイルをまとめてzip
複数のファイルを1つのzipに圧縮するには、ファイル名をスペースで区切って指定するか、ワイルドカードを使います。
# 複数ファイルをスペース区切りで指定 $ zip archive.zip file01.txt file02.txt file03.txt adding: file01.txt (deflated 50%) adding: file02.txt (deflated 45%) adding: file03.txt (deflated 52%) # ワイルドカードで*.txtを全て圧縮 $ zip alltxt.zip *.txt # 複数のパターンを組み合わせ $ zip mixed.zip *.txt *.csv *.json # 特定のファイルを除外(-x オプション) $ zip -r backup.zip . -x "*.log" -x "*.tmp" # カレントディレクトリを全圧縮、.logと.tmpを除外
ls *.txt など
対象ファイルを確認
zip archive.zip *.txt
ワイルドカード指定
ls -lh archive.zip
ファイルサイズ確認
unzip -l archive.zip
内容一覧を表示
📚 用語解説
ワイルドカード(glob展開):シェルで「*」や「?」などの特殊文字を使ってファイル名のパターンを指定する機能。「*.txt」はカレントディレクトリの全.txtファイルに展開される。「data_*.csv」はdata_で始まる.csvファイルにマッチする。zipコマンドでは「zip archive.zip *.txt」のようにワイルドカードを使って複数ファイルを一度に圧縮できる。
「unzip -l archive.zip」でzipファイルの中に何が入っているかをリスト表示できます。解凍せずに確認できるため、「本当に必要なファイルが入っているか」の確認に使えます。
05 ZIP DIRECTORY ディレクトリごと圧縮する:zip -r 再帰的に圧縮する-rオプションの使い方と注意点
ディレクトリ(フォルダ)とその中身を全て圧縮するには-r(--recurse-paths)オプションを使います。-rがないとファイルのみが圧縮対象になり、ディレクトリは無視されます。
# ディレクトリを再帰的に圧縮 $ zip -r backup.zip mydir/ adding: mydir/ (stored 0%) adding: mydir/file01.txt (deflated 50%) adding: mydir/subdir/ (stored 0%) adding: mydir/subdir/file02.txt (deflated 45%) # カレントディレクトリを全て圧縮 $ zip -r current.zip . # 複数のディレクトリを1つのzipに $ zip -r combined.zip dir1/ dir2/ dir3/ # ディレクトリ構造を無視してフラット化(-j) $ zip -j flat.zip mydir/ # → mydir/の中のファイルだけを圧縮(パス情報なし)
「zip -r backup.zip .」でカレントディレクトリを全圧縮すると、作成しているbackup.zip自体も対象に含まれることがあります。これを避けるため、「zip -r backup.zip . -x backup.zip」のように作成するzipファイル自身を-xで除外するのが安全です。
# -jでパス情報を除いてフラット化 $ zip -j flat.zip mydir/subdir/ # 結果: flat.zipにはサブディレクトリのファイルが直接入る(mydir/subdir/パスなし) # 圧縮と除外を組み合わせた例 $ zip -r backup.zip . -x "*.git*" -x "node_modules/*" -x "*.log" # .git, node_modules, .logを除外してプロジェクトをzip
06 ZIP PASSWORD パスワード付き圧縮:zip -e 機密ファイルをパスワードで保護してzipに圧縮する方法
機密情報を含むファイルを安全に渡すために、-e(--encrypt)オプションでパスワード付きzipを作成できます。
# パスワード付きzipを作成(対話式でパスワード入力) $ zip -e secret.zip confidential.txt Enter password: Verify password: adding: confidential.txt (deflated 50%) # ディレクトリをパスワード付きで圧縮 $ zip -r -e secure_backup.zip sensitive_dir/ Enter password: Verify password: adding: sensitive_dir/ (stored 0%) adding: sensitive_dir/secret.txt (deflated 60%) # 解凍時(unzip)にパスワードを求められる $ unzip secret.zip Archive: secret.zip [secret.zip] confidential.txt password:
デフォルトの「zip -e」はZipCryptoという古い暗号化方式を使用しており、現代のセキュリティ基準では不十分とされています。より強固な暗号化が必要な場合は「zip -e --encrypt」ではなく、7-zipの「zip -P」(AES-256対応)や「openssl enc」での事前暗号化を検討してください。企業の機密文書の送付には別途セキュリティポリシーを確認してください。
📚 用語解説
ZipCryptoとAES-256の違い:ZipCrypto(伝統的なzipの暗号化)は1980年代に作られた弱い暗号化方式で、既知平文攻撃に脆弱とされる。AES-256は現代の標準的な強暗号化で、7-zip(.7z形式)がAES-256に対応している。Linuxのzip -eはデフォルトでZipCryptoを使う。機密度が高い文書は7z形式でAES-256暗号化するか、ファイル転送にはSFTP/SCP(SSHベース)を使う方が安全。
07 UNZIP unzipコマンドで解凍する方法 unzip archive.zip の基本から解凍先指定・内容確認まで
unzipコマンドは.zipファイルを解凍するコマンドです。「unzip アーカイブ名.zip」で現在のディレクトリに解凍します。
# 基本的な解凍(カレントディレクトリに展開)
$ unzip archive.zip
# 解凍先ディレクトリを指定(-d)
$ unzip archive.zip -d /path/to/destination/
# 特定のファイルだけ解凍
$ unzip archive.zip file01.txt
# zipの中身を確認(解凍せずにリスト表示)
$ unzip -l archive.zip
Archive: archive.zip
Length Date Time Name
--------- ---------- ----- ----
5120 07-18-2026 14:30 file01.txt
3200 07-18-2026 14:30 file02.txt
--------- -------
8320 2 files
# パスワード付きzipを解凍(-P でパスワード指定)
$ unzip -P mysecretpassword secret.zip
# 既存ファイルを上書きして解凍(-o)
$ unzip -o archive.zip
unzip -l archive.zip
中身を事前確認
-d オプションで
解凍先ディレクトリ指定
unzip archive.zip -d dest/
解凍完了
ls -la dest/
ファイルを確認
「unzip archive.zip」をいきなり実行すると、カレントディレクトリに多数のファイルが展開されて散らかることがあります。「unzip -l archive.zip」でまず中身のファイル一覧を確認し、「unzip archive.zip -d 新しいフォルダ名/」で専用ディレクトリに解凍する習慣をつけると安全です。
08 ZIP VS TARGZ zip vs tar.gz vs gzip:圧縮形式の使い分け Linuxの代表的な圧縮形式の違いと場面別の選び方
Linuxではzip・tar.gz・gzip・bzip2・7zと複数の圧縮形式があります。「どれを使えばいいか」を場面別に整理します。
| 形式 | コマンド | 圧縮率 | Windows対応 | 主な用途 |
|---|---|---|---|---|
| .zip | zip / unzip | 普通 | ◎(標準対応) | クロスプラットフォーム配布・ダウンロード提供 |
| .tar.gz (.tgz) | tar -czf | 高い | △(追加ツール必要) | サーバーバックアップ・Linuxソフト配布 |
| .tar.bz2 | tar -cjf | 高い(低速) | △ | 高圧縮が必要なバックアップ |
| .gz | gzip | 普通〜高い | △ | 単一ファイルの圧縮(ログ圧縮等) |
| .7z | 7za | 非常に高い | ○(7-zip) | 最高圧縮率・AES-256暗号化 |
📚 用語解説
tar(テープアーカイバ)とgzip:tarはファイルを1つにまとめる(アーカイブする)ツールだが圧縮は行わない。gzipはファイルを圧縮するが複数ファイルをまとめる機能がない。「tar.gz(.tgz)」はtarでまとめてからgzipで圧縮した組み合わせ。「tar -czf backup.tar.gz mydir/」はcオプションでアーカイブ作成、zオプションでgzip圧縮、fオプションでファイル名を指定することを意味する。LinuxのソースコードパッケージがよくこのフォーマットでMakefileと一緒に配布される。
# tar.gzで圧縮(Linuxサーバー用バックアップ) $ tar -czf backup.tar.gz mydir/ # tar.gzを解凍 $ tar -xzf backup.tar.gz # gzipで単一ファイルを圧縮(ログローテーション等) $ gzip access.log # → access.log.gz が作成 $ gunzip access.log.gz # 解凍 # zipとtar.gzの圧縮率比較(テキストファイルの場合) $ zip -9 test.zip large.txt # → 例: 1.2MB $ tar -czf test.tar.gz large.txt # → 例: 1.0MB (gzipの方がやや小さい場合多い)
09 ZIP SCRIPTS zipを含むシェルスクリプトの実例 バックアップの自動化・日付付きアーカイブ・古いzipの自動削除など実用スクリプト
zipコマンドをシェルスクリプトに組み込むことで、「毎日バックアップ」「一定期間で古いアーカイブを自動削除」などの自動化が実現できます。
#!/bin/bash
# Webサイトのファイルを日付付きzipでバックアップするスクリプト
BACKUP_DIR="/var/backups/website"
SOURCE_DIR="/var/www/html"
DATE=$(date +%Y%m%d_%H%M%S)
FILENAME="backup_${DATE}.zip"
RETENTION_DAYS=7
mkdir -p "$BACKUP_DIR"
zip -r "$BACKUP_DIR/$FILENAME" "$SOURCE_DIR" -x "*.log" -x "*.tmp"
if [ $? -eq 0 ]; then
echo "バックアップ成功: $FILENAME"
else
echo "バックアップ失敗" >&2
exit 1
fi
find "$BACKUP_DIR" -name "backup_*.zip" -mtime +$RETENTION_DAYS -delete
echo "$RETENTION_DAYS 日より古いバックアップを削除しました"
# cronで毎日深夜2時にバックアップ # crontab -e で以下を追加 0 2 * * * /home/user/scripts/backup.sh >> /var/log/backup.log 2>&1
毎日02:00
スクリプト起動
zip -r でサイトを圧縮
日付付きファイル名
exit codeを確認
失敗時はログ出力
7日以上前のzipを
findで自動削除
10 CLAUDE CODE ZIP Claude CodeでLinux圧縮スクリプトを自動生成する 日本語で要件を説明するだけでzip活用スクリプトが生成できる
Linuxのzipコマンドの使い方を覚えても、「自動バックアップの仕組みを作りたい」「cronと組み合わせて定期実行したい」「S3に自動アップロードしたい」という場合は追加の知識が必要です。Claude Codeを使えば、日本語で要件を説明するだけでzipを活用したスクリプトが自動生成できます。
| あなたの指示 | Claude Codeが生成するもの |
|---|---|
| 「Webサイトのファイルを毎日バックアップしてS3にアップロード」 | zip圧縮 + aws s3 cpのbashスクリプト + cronジョブ設定 |
| 「古いログを30日分だけzip圧縮して保持するスクリプト」 | findコマンド + zip + 古いファイル自動削除のスクリプト |
| 「複数サーバーのバックアップを一括で取るスクリプト」 | ssh + zip + scpを組み合わせた並列バックアップスクリプト |
| 「zip解凍後に中身を確認してエラーがあればSlack通知」 | unzip + 検証 + curl(Slack Webhook)のスクリプト |
Linuxの圧縮・バックアップ自動化もClaude Codeで実現できます
「zipコマンドは分かったけど自動化スクリプトは書けない」「S3やSlackと連携したバックアップの仕組みを作りたい」——こうしたLinux自動化の課題はClaude Codeで解決できます。まずは無料相談でどのような自動化が必要かをヒアリングさせてください。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
AI活用を自社で回せるようになりたい方へ
AI鬼管理
Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。
よくある質問
Q. Linuxでファイルをzipに圧縮するコマンドを教えてください。
A. 「zip アーカイブ名.zip ファイル名」が基本です。例えば「zip archive.zip file.txt」でfile.txtを圧縮したarchive.zipが作成されます。複数ファイルを圧縮するには「zip archive.zip file01.txt file02.txt」のようにスペースで区切るか、「zip archive.zip *.txt」のようにワイルドカードを使います。
Q. Linuxでディレクトリ(フォルダ)をzipに圧縮するには?
A. 「zip -r アーカイブ名.zip ディレクトリ名/」と-r(再帰)オプションを使います。例えば「zip -r backup.zip mydir/」でmydirとその中身全てをbackup.zipに圧縮します。-rを忘れるとディレクトリは無視されてファイルのみが対象になるので注意してください。
Q. Linuxのzipコマンドでパスワード付きzipを作成するには?
A. 「zip -e secret.zip ファイル名」と-e(encrypt)オプションを使います。実行するとパスワードの入力プロンプトが表示されます。ただしデフォルトの暗号化方式(ZipCrypto)は現代のセキュリティ基準では弱いため、重要な機密情報には7-zip(AES-256)を使うことを推奨します。
Q. Linuxでzipファイルを解凍するコマンドは?
A. 「unzip archive.zip」が基本です。解凍先を指定するには「unzip archive.zip -d /解凍先のパス/」のように-dオプションを使います。解凍前にzipの中身を確認するには「unzip -l archive.zip」でリスト表示できます。
Q. Linux zipとtar.gzの違いは?どちらを使うべきか?
A. 「Windows環境に配布するならzip」「Linuxサーバー間・Linux/Mac向けならtar.gz」が基本の判断基準です。zipはWindowsが標準対応しているため、クロスプラットフォームの配布に向きます。tar.gzはLinux/Macでの標準的なアーカイブ形式で、圧縮率がやや高い傾向があります。
Q. zipの中身を解凍せずに確認するには?
A. 「unzip -l archive.zip」でzipの中のファイル一覧をリスト表示できます。各ファイルのサイズと更新日時も確認できます。解凍前に「本当に必要なファイルが入っているか」「解凍するとカレントディレクトリに直接ファイルが展開されないか」を確認する習慣をつけると安全です。
Q. Claude Codeでzipを使ったバックアップスクリプトを作れますか?
A. できます。「毎日Webサイトのファイルをzipで圧縮してS3にアップロードし、30日分を保持するシェルスクリプトを書いて。失敗したらSlackに通知して」のように日本語で要件を説明すると、完成したbashスクリプトとcrontab設定が生成されます。zipオプションの詳細を覚えるよりも、要件を日本語で説明できる力の方が実務では効率的です。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
Claude Code を業務に落とし込む
専門研修コース一覧
受講者本人の業務を題材に、「使いこなせる」状態になるまで伴走する研修プログラム。1対1特化型・ハンズオン・法人講座の3コースを展開中。業務特化・実装まで踏み込むタイプのClaude Code研修です。
研修コース一覧を見る →AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。




