zip — 建立 ZIP 壓縮封存檔
建立跨平台的 ZIP 壓縮封存檔,相容性最佳。
語法
zip [選項] 封存檔.zip 檔案...
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-r, --recurse-paths |
遞迴包含子目錄 | zip -r archive.zip dir/ |
-9 |
最高壓縮率(較慢) | zip -9 archive.zip file |
-e, --encrypt |
加密壓縮(需輸入密碼) | zip -e secure.zip file |
-u |
只更新已在封存檔中且較新的檔案 | zip -u archive.zip new_file |
-d |
從封存檔中刪除指定的檔案 | zip -d archive.zip old_file |
-l |
列出封存檔內容(等同 unzip -l) | zip -l archive.zip |
-j |
不儲存目錄結構,所有檔案放在同一層 | zip -j flat.zip path/to/file |
-v |
詳細輸出 | zip -rv archive.zip dir/ |
-x 樣式 |
排除符合樣式的檔案 | zip -r archive.zip . -x "*.log" |
使用範例
範例 1:壓縮整個目錄
遞迴將 project 目錄打包成 project.zip,保留目錄結構。
$ zip -r project.zip ./project/
adding: project/ (stored 0%)
adding: project/README.md (deflated 45%)
adding: project/src/main.py (deflated 62%)
範例 2:排除特定類型的檔案
壓縮時排除 .log 和 node_modules,常用於打包部署包。
$ zip -r deploy.zip . -x "*.log" -x "node_modules/*" -x ".git/*"
範例 3:加密 ZIP(設定密碼)
建立有密碼保護的 ZIP 檔,適合傳送敏感資料。
$ zip -re secrets.zip confidential.pdf
Enter password:
Verify password:
adding: confidential.pdf (deflated 34%)
範例 4:查看 ZIP 內容
不解壓縮,只列出封存檔中的所有檔案。
$ unzip -l archive.zip
Archive: archive.zip
Length Date Time Name
-------- ---------- ----- ----
4096 2026-05-20 09:00 project/README.md
102400 2026-05-20 09:00 project/app.tar.gz
常見錯誤與排錯
zip: command not found
- 原因
- zip 未安裝。
- 解法
- sudo apt install zip unzip(Debian/Ubuntu)。