技術文章 · IT 指令工具箱

zip、unzip、7-Zip 指令:壓縮資料夾、列清單與指定目錄解壓

zip、unzip、7z 怎麼用?整理壓縮資料夾、保留來源、指定解壓目錄、列出清單、測試完整性、排除檔案與加密時的注意事項。

作者 Steve Chen · 發布  · 約 4 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

ZIP 跨平台方便,但不同工具對權限、符號連結與加密格式的處理不完全相同。要搬網站或伺服器資料時,先確認真正要保留的中繼資料。

16 組範例LinuxmacOSWindows 7-Zip查核日期:2026-08-11
動手前:解壓前先列清單並指定新目錄。不要在命令列直接寫真實密碼,因為它可能出現在 shell history、程序清單或作業紀錄裡。

zip 建立壓縮檔

壓縮單一檔案Linux/macOS

zip report.zip report.pdf

來源檔會保留。

遞迴壓縮資料夾Linux/macOS

zip -r project.zip project/

-r 會走訪所有子目錄。

排除 .git 與 cacheLinux/macOS

zip -r project.zip project/ -x 'project/.git/*' 'project/cache/*'

萬用字元要加引號,避免先被 shell 展開。

更新壓縮檔內較新的檔案Linux/macOS

zip -ur project.zip project/

更新前先保留舊版壓縮檔,避免錯誤覆蓋。

從標準輸入建立 ZIP 內容Info-ZIP

printf 'hello
' | zip note.zip -

ZIP 內的成員名稱會是 -;一般檔案備份較少用。

unzip 查看與解壓

列出 ZIP 內容Linux/macOS

unzip -l project.zip

先確認路徑、檔名與大致大小。

測試 ZIP 完整性Linux/macOS

unzip -t project.zip

不解出檔案,只測試壓縮內容。

解到指定資料夾Linux/macOS

mkdir extracted && unzip project.zip -d extracted

避免把大量檔案散在目前目錄。

只解出單一檔案Linux/macOS

unzip project.zip 'project/config/app.conf' -d extracted

成員路徑要和 unzip -l 顯示一致。

解壓但不覆蓋舊檔Info-ZIP

unzip -n project.zip -d extracted

-n 遇到同名檔會略過,適合保守操作。

只把單一檔案輸出到畫面Linux/macOS

unzip -p project.zip 'project/README.txt' | less

不落地即可檢查文字內容。

7-Zip/7z

列出封存內容7-Zip

7z l archive.7z

l 是 list,先確認內容再解。

測試封存完整性7-Zip

7z t archive.7z

t 不會解出檔案。

保留目錄結構解壓7-Zip

7z x archive.7z -oextracted

-o 後面不要加空格;先建立或確認目的目錄。

建立 7z 封存檔7-Zip

7z a archive.7z folder/

a 是 add;來源資料會保留。

建立 AES-256 加密封存檔7-Zip

7z a -t7z -mhe=on secure.7z folder/

執行後互動輸入密碼,不要把密碼直接放在 -p 後面。

怎麼確認有做對

  • 列出成員清單並確認沒有奇怪的絕對路徑或 ../。
  • 執行 unzip -t 或 7z t。
  • 解壓後抽查檔案數量、權限與應用程式能否讀取。

常見錯誤

  • 把 -r 漏掉,結果只壓到空資料夾入口。
  • 密碼直接寫在命令列。
  • 解進目前工作目錄,和既有檔案混在一起。
  • 把 ZIP 當成能完整保留 Unix 擁有者與 ACL 的備份格式。

版本與官方文件

參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。

聯絡廷皓討論 看更多文章