unzip — 解壓縮 ZIP 格式封存檔
解壓縮 ZIP 格式封存檔,支援查看內容與選擇性解壓縮。
語法
unzip [選項] 封存檔.zip [要解壓的檔案...]
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-d 目錄 |
解壓縮到指定目錄 | unzip archive.zip -d /opt/app/ |
-l |
列出封存內容(不解壓) | unzip -l archive.zip |
-t |
測試封存檔完整性 | unzip -t archive.zip |
-o |
覆蓋現有檔案(不詢問) | unzip -o archive.zip |
-n |
不覆蓋現有檔案 | unzip -n archive.zip |
-j |
忽略目錄結構,所有檔案解壓到同一目錄 | unzip -j archive.zip |
-p |
將內容輸出到標準輸出(不寫入檔案) | unzip -p archive.zip file.txt | grep keyword |
-x 樣式 |
解壓縮時排除符合樣式的檔案 | unzip archive.zip -x "*.tmp" |
-P 密碼 |
提供解壓縮密碼 | unzip -P password secret.zip |
使用範例
範例 1:解壓縮到當前目錄
最基本用法,解壓縮到當前目錄(保留原始 zip 檔)。
$ unzip archive.zip
Archive: archive.zip
inflating: project/README.md
inflating: project/src/main.py
範例 2:解壓縮到指定目錄
使用 -d 解壓縮到 /opt/app/ 目錄(目錄可不事先存在)。
$ unzip release.zip -d /opt/app/
範例 3:查看封存內容
不解壓縮,只列出 ZIP 封存內的所有檔案和大小。
$ unzip -l release-v2.0.zip
Archive: release-v2.0.zip
Length Date Time Name
-------- ---------- -----
4096 2026-05-20 09:00 app
102400 2026-05-20 09:00 app/server.py
-------- ------
106496 2 files
範例 4:只解壓縮特定檔案
只從封存中解壓縮指定的檔案。
$ unzip archive.zip project/config.yml
inflating: project/config.yml
常見錯誤與排錯
unzip: cannot find or open archive.zip
- 原因
- 指定的 zip 檔案不存在。
- 解法
- 確認路徑和檔名是否正確,注意大小寫。
skipping: file.txt need PK compat. v5.1 (can do v4.6)
- 原因
- ZIP 使用較新的壓縮方式或加密標準,系統的 unzip 版本太舊。
- 解法
- 升級 unzip:sudo apt upgrade unzip,或使用 7z 等替代工具。