概要
ZIP形式のアーカイブを作成、更新、削除します。Windows互換性を重視した受け渡しで特に便利です。
基本構文
zip [オプション]... アーカイブ名 対象...
zip [オプション]... -r アーカイブ名 ディレクトリ...
zip [オプション]... -d アーカイブ名 項目名...詳細解説
zipは、ファイルやディレクトリをZIP形式のアーカイブへまとめるコマンドです。Linux同士ではtar系がよく使われますが、Windowsを含む環境での受け渡しではZIP形式の互換性が高く、実務で出番があります。
zipは新規作成だけでなく、既存アーカイブへの更新、不要項目の削除、ディレクトリの再帰取り込み、格納後の元ファイル削除なども行えます。単一ファイル専用ではなく、複数ファイルやディレクトリをまとめて扱えるのが重要な点です。
ただし、-mは格納後に元ファイルを削除します。提出物や配布物の作成では、まず通常の作成を行い、必要ならunzip -lやzip -Tで内容確認と整合性確認を行うのが安全です。
このコマンドを使う場面
Windowsとの受け渡し用アーカイブを作る時、提出物や配布物を一つにまとめたい時、既存ZIPへファイルを追加、更新、削除したい時に使います。
まず安全に試す方法
1. mkdir demo
2. printf "hellon" > demo/a.txt
3. printf "worldn" > demo/b.txt
4. zip -r demo.zip demo
5. unzip -l demo.zip
6. zip -T demo.zip
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
小さなディレクトリをzip -rでまとめ、unzip -lで中身を確認します。
-
zip -Tで作成済みZIPの整合性を確認します。
実行結果サンプル
-
mkdir demo printf "hellon" > demo/a.txt printf "worldn" > demo/b.txt zip -r demo.zip demoadding: demo/ (stored 0%) adding: demo/a.txt (...) adding: demo/b.txt (...) -
unzip -l demo.zipArchive: demo.zip Length Date Time Name --------- ---------- ----- ---- 6......... ..... demo/a.txt 6......... ..... demo/b.txt
戻り値コード
- 0 正常終了。処理に成功しました。
- >0 対象不存在、破損、権限不足、上書き不可などで処理できませんでした。
使用例
zip archive.zip file1 file2zip -r archive.zip dirzip -u archive.zip changed.txtzip -d archive.zip old.txtzip -T archive.zip
よくあるエラー
-
元ファイルが消えた 原因: -mを付けて格納後に元ファイルを削除しました。対処: 原本を残したい時は-mを使わず、作成後に別途整理します。
-
想定外のファイルまで含まれた 原因: -rで広いディレクトリを再帰的に取り込みました。対処: 対象を絞り、必要なら-iや-xで含める対象と除外対象を明示します。
導入・互換性情報
zipはInfo-ZIP系実装が広く使われます。最小構成では未導入のことがあります。権限情報やリンク、文字コードの扱いは作成元と展開先の環境差で影響を受けることがあります。
注意点 / セキュリティリスク
危険度は低いですが、-mを付けると格納後に元ファイルを削除します。再帰取り込みでは想定外のファイルまで含めやすいため、対象を確認してから実行します。
FAQ
-
Q. zipは複数ファイルを一つにできますか。 A. はい。複数ファイルやディレクトリを一つのZIPアーカイブへまとめられます。
-
Q. tarとどう使い分けますか。 A. Windowsとの受け渡しや提出物ではZIPが便利です。Linux同士の運用や属性保持を重視する場面ではtar系が向くことがあります。
関連用語
参照リンク
- カテゴリー: Archive And Transfer
- レベル: Basic