Linux 下壓縮格式繁多、參數易混淆。本文整理 12 種主流格式的壓縮/解壓命令、核心參數含義、管道組合技巧、多核加速方案與常見坑點,製作成「隨查隨用」速查表,並附贈統一調用工具 atool/dtrx 推薦。
| 格式 | 副檔名 | 解壓命令 | 壓縮命令 | 核心參數 | 適用場景 |
|---|---|---|---|---|---|
| tar | .tar | tar xvf file.tar | tar cvf file.tar dir/ | x解壓 c建立 v顯示 f文件 | 純打包、配合管道 |
| gzip | .gz | gzip -d file.gzgunzip file.gz | gzip file | -1~-9壓縮等級 -k保留原檔 | 通用、速度快、相容性最好 |
| tar.gz | .tar.gz/.tgz | tar zxvf file.tar.gz | tar zcvf file.tar.gz dir/ | z調用 gzip | Linux 軟體分發標準格式 |
| bzip2 | .bz2 | bzip2 -d file.bz2bunzip2 file.bz2 | bzip2 -z file | -1~-9 -k保留 | 壓縮率優於 gzip、速度較慢 |
| tar.bz2 | .tar.bz2/.tbz2 | tar jxvf file.tar.bz2 | tar jcvf file.tar.bz2 dir/ | j調用 bzip2 | 源碼包常用 (Kernel、GCC) |
| xz | .xz | xz -d file.xzunxz file.xz | xz -z file | -1~-9 -T0多執行緒 -k | 最高壓縮率、現代 Linux 標準 |
| tar.xz | .tar.xz/.txz | tar Jxvf file.tar.xz | tar Jcvf file.tar.xz dir/ | J調用 xz | Arch Linux 包、Kernel 官方發布 |
| compress | .Z | uncompress file.Z | compress file | 舊 Unix 標準、LZW 算法 | 極少見、歷史遺留 |
| tar.Z | .tar.Z | tar Zxvf file.tar.Z | tar Zcvf file.tar.Z dir/ | Z調用 compress | 舊系統備份 |
| zip | .zip | unzip file.zip | zip -r file.zip dir/ | -r遞歸 -9最高壓縮 -e加密 | 跨平台交換、Windows 相容 |
| rar | .rar | unrar x file.rar | rar a file.rar dir/ | a添加 -r遞歸 -p密碼 -v分卷 | Windows 常用、分卷、恢復記錄 |
| 7z | .7z | 7z x file.7z | 7z a file.7z dir/ | a添加 -m0=lzma2 -mx=9 -mmt=on多核 | 最高壓縮率、多核加速、開源 |
# xz 多執行緒 (自動偵測 CPU 核心數)
tar -I 'xz -T0' -cvf backup.tar.xz /data/
# 7z 多執行緒
7z a -mmt=on backup.7z /data/
# pigz (並行 gzip) 替代 gzip
tar -I pigz -cvf backup.tar.gz /data/
# pbzip2 (並行 bzip2)
tar -I pbzip2 -cvf backup.tar.bz2 /data/
# 本地打包壓縮並經 SSH 遠端解壓
tar czf - /source/dir | ssh user@remote "tar xzf - -C /dest/"
# 使用 pv 顯示進度
tar cf - /source | pv | gzip -c | ssh user@remote "gunzip | tar xf - -C /dest"
tar czvf backup.tar.gz /data --exclude='*.log' --exclude='node_modules' --exclude='.git'
# tar 保留所有屬性
tar --acls --xattrs -cvpf backup.tar /data
# rsync 替代方案 (更強大)
rsync -aAXH --numeric-ids /source/ /dest/
tar xzf file.tar.gz -C /target/dir/
unzip file.zip -d /target/dir/
7z x file.7z -o/target/dir/
tar tzf file.tar.gz
unzip -l file.zip
7z l file.7z
rar l file.rar
gzip -t file.tar.gz
bzip2 -t file.tar.bz2
xz -t file.tar.xz
zip -T file.zip
7z t file.7z
aunpack file.tar.gz 自動識別格式解壓,apack backup.tar.gz dir/ 自動選擇壓縮格式。dtrx file.any 智能解壓、自動處理單層目錄、編碼修正、權限保留。| 坑點 | 後果 | 正確做法 |
|---|---|---|
tar 參數順序錯誤 (tar -czf vs tar -zcf) | 產生錯誤文件或報錯 | 習慣用 tar czvf (無連字號) 或 tar -czvf 固定順序 |
| 解壓覆蓋現有文件無提示 | 數據意外丟失 | 加 -k (keep) 或先 tar tf 確認 |
| zip 中文文件名編碼亂碼 (CP437 vs UTF-8) | 解壓後文件名亂碼 | unzip -O CP936 file.zip 或用 7z/atool 自動修正 |
| rar/unrar 非自由軟體、版本舊 | 新版 rar5 格式不支援 | 優先用 7z (p7zip-full) 解壓 rar |
| 極大文件 (>4GB) 用舊版 zip | 生成損壞包 | 用 zip64 (zip -z) 或改用 7z/tar.xz |
日常首選 tar.xz (高壓縮率) 或 tar.gz (高相容);跨平台交換用 zip;極致壓縮與多核加速用 7z;腳本自動化用 atool/dtrx。熟練掌握 tar -I 'xz -T0'、管道串流、--acls --xattrs、編碼修正等進階技巧,能大幅提升備份遷移效率與可靠性。