ZIP 跨平台方便,但不同工具對權限、符號連結與加密格式的處理不完全相同。要搬網站或伺服器資料時,先確認真正要保留的中繼資料。
動手前:解壓前先列清單並指定新目錄。不要在命令列直接寫真實密碼,因為它可能出現在 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.7zl 是 list,先確認內容再解。
測試封存完整性7-Zip
7z t archive.7zt 不會解出檔案。
保留目錄結構解壓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 或系統內建說明確認,再以當版官方文件為準。