はじめに
こんにちは!今回はzipコマンドについて解説します。
zipは、ファイルやディレクトリを圧縮してZIPファイルを作成するコマンドです。Windowsと互換性が高い圧縮形式なので、クロスプラットフォームでのファイル共有に最適。複数ファイルをまとめたり、メールで送るときに毎日使うコマンドですね。
「複数ファイルを1つの箱に詰める機」って感じです。
zipコマンドとは
zipは、ファイルやディレクトリを圧縮してZIPアーカイブを作成するコマンドです。“unzip"の逆で、ファイルを圧縮して保存します。
ZIP形式は、Windows・Mac・Linux・スマートフォンなど、あらゆるプラットフォームで標準的に対応しているから、ファイル交換に最適。複数ファイルを1つにまとめたり、ファイルを小さくしたり、パスワード保護したりできます。ビジネスシーンで最も一般的な圧縮形式ですね。
基本構文
|
|
圧縮対象にはファイルやディレクトリを指定できます。
主なオプション
| オプション | 説明 |
|---|---|
-r |
ディレクトリを再帰的に圧縮 |
-e |
パスワード保護を有効化 |
-q |
出力を抑制(quiet) |
-v |
詳細表示 |
-j |
ディレクトリ構造を無視してファイルのみ圧縮 |
-l |
LF(Unix)を CRLF(Windows)に変換 |
-d |
ファイルを削除 |
-u |
更新된 ファイルのみ追加 |
-x |
特定ファイルを除外 |
-m |
圧縮後に元ファイルを削除 |
使用例
例1: 単一ファイルを圧縮
|
|
実行結果:
|
|
file.txtをarchive.zipに圧縮。シンプルな1ファイル圧縮。
例2: 複数ファイルを一度に圧縮
|
|
実行結果:
|
|
複数ファイルを1つのZIPファイルに圧縮。
例3: ディレクトリを再帰的に圧縮
|
|
実行結果:
|
|
-rオプションでディレクトリ全体を再帰的に圧縮。フォルダ構造が保持されます。
例4: パスワード保護を追加
|
|
実行結果:
|
|
-eでパスワード保護。対話的にパスワード入力。解凍時にパスワードが必要。
例5: ディレクトリ構造を無視して圧縮
|
|
実行結果:
|
|
-jで、ZIPファイル内のディレクトリ構造を無視。すべてのファイルがルートに格納。
例6: 特定ファイルを除外して圧縮
|
|
実行結果:
|
|
-xで特定パターンのファイルを除外。ログファイルやキャッシュを除外。
例7: 圧縮後に元ファイルを削除
|
|
実行結果:
|
|
-mで圧縮後に元のdocument.txtを削除。ディスク容量を節約。
例8: ZIPファイルに追加圧縮
|
|
実行結果:
|
|
既存のZIPファイルに新しいファイルを追加。
例9: 更新されたファイルのみ追加
|
|
実行結果:
|
|
-uで更新されたファイルのけみ追加。差分更新が可能。
例10: 出力を抑制して圧縮
|
|
実行結果:
|
|
-qで出力を抑制。スクリプトでの自動化に向いています。
Tips・注意点
zipコマンドがない場合
|
|
古いシステムではzipコマンドがインストールされていない場合があります。
パスワード保護は対話的
|
|
スクリプトから実行する場合は注意。パスワードを事前に指定したい場合は別の方法が必要。
圧縮率の確認
|
|
-vで各ファイルの圧縮率を確認。テキストファイルはよく圧縮される。
実践的な使い方
バックアップファイルの作成
|
|
日付付きでバックアップZIPを作成。隠しファイルは除外。
Webプロジェクトの配布パッケージ作成
|
|
node_modulesと.gitを除外。本番配布用パッケージを作成。
ログファイルの定期的な圧縮
|
|
7日以上前のログを圧縮して削除。ディスク容量管理。
まとめ
zipコマンドのポイント:
- ファイル・ディレクトリを圧縮してZIPアーカイブを作成
- -r: ディレクトリを再帰的に圧縮
- -e: パスワード保護を追加
- -m: 圧縮後に元ファイルを削除
- -j: ディレクトリ構造を無視
- -x: 特定ファイルを除外
- -u: 更新ファイルのみ追加
- よく使う組み合わせ:
zip -r,zip -e,zip -x
Windowsとの互換性が高く、ファイル共有や配布に最適。unzipと組み合わせて覚えると、ファイル圧縮の全体像が見えてきますよ!