7-Zip (p7zip) 支援 7z、ZIP、RAR、TAR、GZIP、BZIP2、XZ、ISO、CAB、ARJ、LZMA2 等 30+ 格式,壓縮率高、跨平台、命令列介面統一。本文涵蓋主流發行版安裝差異、核心命令 (a/e/x/l/u/d/t)、分卷壓縮、加密、排除檔案、效能調優、腳本化批次處理。

# 三個套件
# p7zip : 僅 7zr (只支援 7z 格式)
# p7zip-full : 7z + 7za (完整格式支援,推薦)
# p7zip-rar : RAR 解壓插件 (專有格式單獨分發)
$ sudo apt-get install p7zip-full p7zip-rar
# 兩個套件 (EPEL 必啟用)
# p7zip : 7za (支援 7z/ZIP/GZIP/CAB/ARJ/BZIP2/TAR/CPIO/RPM/DEB)
# p7zip-plugins: 7z (額外支援 ISO 等)
$ sudo yum install epel-release
$ sudo yum install p7zip p7zip-plugins
# 注意:紅帽系無 p7zip-rar,RAR 解壓需非官方 repo 或 unrar
| 命令 | 功能 | 關鍵選項 |
|---|---|---|
7z a | 建立/附加壓縮檔 | -t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on (最大壓縮) |
7z e | 解壓至當前目錄 (不保留目錄結構) | -o<輸出目錄> -y (覆蓋不提示) |
7z x | 解壓保留完整路徑 (推薦) | -o<輸出目錄> -y |
7z l | 列出壓縮檔內容 | -slt 顯示詳細屬性 |
7z u | 更新壓縮檔 (增量) | -up0q0r2x2y2z1w2 |
7z d | 刪除壓縮檔內檔案 | -r 遞迴 |
7z t | 測試壓縮檔完整性 | - |
$ 7z a -t7z -mx=9 -mfb=64 -md=32m -ms=on \
-xr'!.git' -xr'!*.o' -xr'!*.pyc' \
project_backup.7z project/
-xr 遞迴排除模式。-ms=on 固實壓縮 (實體塊壓縮,提升壓縮率)。$ 7z a -v100m -t7z large_backup.7z /var/lib/mysql/
# 產生 large_backup.7z.001, .002, ...
# 解壓時只需指定第一卷
$ 7z x large_backup.7z.001
$ 7z a -p'StrongPassphrase' -mhe=on -t7z secret.7z sensitive_files/
# -mhe=on 加密檔案名 (標頭加密)
$ 7z x ubuntu-22.04-server-amd64.iso -o./iso_contents
$ find . -name '*.zip' -exec 7z x {} \;
$ for f in *.tar.gz; do 7z x "$f"; done
| 參數 | 說明 | 建議值 |
|---|---|---|
-mmt=N | 執行緒數 | $(nproc) 或核心數-1 |
-mx=N | 壓縮等級 0-9 | 9 (最高)、5 (平衡)、1 (最快) |
-md=SIZE | 字典大小 | 32m-128m (視記憶體) |
-mfb=N | 快速位元組數 | 64-273 |
-mm=METHOD | 壓縮演算法 | LZMA2 (預設), PPMd (文字), BZip2 |
unrar (RPMFusion) 或使用 7z x (p7zip-plugins 含部分 RAR 支援)。7z: command not found:套件名為 p7zip,二進制為 7z/7za/7zr。-md、-mmt。-snl 儲存連結而非目標檔案。7z x。掌握 7z 核心參數與跨平台安裝差異,讓壓縮/解壓縮操作在伺服器、桌面、CI/CD 流水線中遊刃有餘。