zip 壓縮指令
基本語法
zip [參數] [壓縮後檔名] [來源路徑]
常用參數表
| 參數 | 說明 |
-r | 遞迴處理子目錄(壓縮目錄必加) |
-q | 安靜模式,不顯示執行過程 |
-m | 壓縮後刪除原始檔案(移動模式) |
-o | 將壓縮檔內所有檔案時間設為壓縮當下時間 |
-n <字尾> | 排除特定副檔名(如 -n .log:.tmp) |
-S | 包含系統/隱藏檔案 |
-F | 嘗試修復損壞的壓縮檔 |
-t <日期> | 設定壓縮檔最後修改日期(格式 mmddyyyy) |
-a | 轉換為 ASCII 模式(文字檔跨平台) |
實戰範例
# 絕對路徑壓縮
zip -q -r html.zip /home/Blinux/html
# 相對路徑壓縮(在 /home/Blinux 下執行)
zip -q -r html.zip html
# 當前目錄下所有檔案壓縮
zip -q -r html.zip *
unzip 解壓縮指令
基本語法
unzip [參數] 壓縮檔
常用參數
| 參數 | 說明 |
-l | 列出壓縮檔內容(不解壓) |
-v | 詳細模式顯示壓縮率、權限等資訊 |
-d <目錄> | 指定解壓目標目錄 |
-o | 覆寫既有檔案不提示 |
-q | 安靜模式 |
-x <檔案> | 排除特定檔案不解壓 |
-P <密碼> | 指定密碼(不安全,建議用環境變數) |
實戰範例
# 解壓至當前目錄
unzip test.zip
# 解壓至指定目錄
unzip -d /target/path test.zip
# 僅查看內容
unzip -l test.zip
# 覆寫模式解壓
unzip -o test.zip
進階技巧與注意事項
- 中文檔名編碼: 跨平台解壓易亂碼,建議使用
unzip -O CP936(舊版)或 7z x(支援 UTF-8)
- 分卷壓縮:
zip -s 100m -r big.zip large_dir 每卷 100MB
- 加密壓縮:
zip -e secret.zip file.txt 會提示輸入密碼
- 排除版本控制目錄:
zip -r project.zip project -x "*/.git/*" "*/.svn/*"
- 保留權限與連結: zip 預不保留符號連結,需加
-y 存為連結而非檔案內容
替代工具推薦
- tar + gzip/xz/bzip2: Linux 原生、保留完整權限/屬性、串流處理大檔
- 7z (p7zip-full): 壓縮率最高、支援多執行緒、UTF-8 檔名完美支援
- pigz: 多核心並行 gzip,大檔案壓縮提速數倍
掌握 zip/unzip 核心參數與實戰模式,配合 tar/7z 互補,即可應對各類 Linux 壓縮備份需求。