Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 壓縮解壓雙雄:zip/unzip 參數詳解、加密分卷、中文檔名編碼與實戰場景

編輯:Linux 教學

zip/unzip 是跨平台相容性最好的壓縮格式,支援加密、分卷、保留權限、UTF-8 檔名。本文詳解雙向參數、六大實戰場景、中文編碼坑與避坑指南。

一、 zip 核心參數

參數功能
-r遞歸壓縮目錄樹
-d從壓縮包刪除指定檔案
-i LIST只壓縮清單內檔案
-x LIST排除清單內檔案
-u更新模式(新增/覆蓋較新檔)
-m移動模式(壓縮後刪除原檔)
-F嘗試修復損壞壓縮包
-T測試壓縮包完整性
-NUM壓縮等級 1(快)-9(小),預設 6
-e加密(提示輸入密碼)
-P PASS指定密碼(不安全,明文顯示)
-s SIZE分卷大小(如 -s 100m)
-y保留符號連結(而非跟隨複製目標)

二、 unzip 核心參數

參數功能
-x LIST解壓時排除清單內檔案
-t測試完整性,不解壓
-v查看詳細資訊(大小、壓縮比、CRC)
-n不覆蓋既有檔案
-o強制覆蓋,不提示
-d DIR指定解壓目標目錄
-P PASS指定密碼解密
-l列表模式(不解壓)
-Z顯示壓縮包註解
-O CP指定檔名編碼(如 CP936/GBK)
-I CP指定輸入編碼(舊版相容)

三、 六大實戰場景

1. 最高壓縮備份 /etc

zip -9r /opt/etc.zip /etc

2. 排除日志檔壓縮 /var

zip -r /opt/var.zip /var -x "*.log"

3. 從壓縮包刪除特定檔案

zip /opt/etc.zip -d etc/passwd
# deleting: etc/passwd

4. 更新壓縮包(單檔/整目錄)

# 單檔更新
zip -u /opt/etc.zip /etc/inittab
# 整目錄更新(等同 -ru)
zip -u /opt/etc.zip /etc/*
# 或
zip -ru /opt/etc.zip /etc

5. 解壓並排除/覆蓋/指定目錄

unzip -o /opt/etc.zip -x etc/inittab -d /etc
# -o 強制覆蓋 -x 排除 -d 目標目錄

6. 加密分卷備份大目錄

zip -r -e -s 500m /backup/home.zip /home
# -e 加密 -s 500m 分卷 生成 home.z01, home.z02, home.zip
# 解壓只需 unzip home.zip

四、 中文檔名編碼地雷區

現象:Windows 建立的 zip 檔在 Linux 解壓出現亂碼;Linux 壓縮的 zip 在 Windows 解壓亂碼。

根因:舊版 zip 使用本地編碼(CP936/GBK/Big5),新版支援 UTF-8(需 -UN 參數),但跨平台相容仍有缺口。

解法:

  • Linux 解壓 Windows zip:unzip -O CP936 file.zip(指定輸入編碼)
  • Linux 壓縮給 Windows:zip -r -UN utf8 file.zip dir(強制 UTF-8,Win 7+ 原生支援)
  • 終極方案:改用 7z(7z a -tzip -mem=AES256 -pPASS file.zip dir),完美支援 UTF-8、AES-256 加密、分卷、大檔案。

五、 結語

zip 是「通用壓縮貨幣」,7z 是「現代壓縮王者」。日常跨平台交換用 zip -UN utf8;備份加密分卷用 7z;遇到編碼問題優先嘗試 unzip -O CP936。掌握 -r -x -u -o -d -s -e 八大核心參數組合,應對所有壓縮解壓需求。

Copyright © Windows教程網 All Rights Reserved