Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 壓縮解壓實戰大全:zip、tar、tar.gz、tar.bz2 核心參數與場景選型

編輯:Linux 系統常見問題解答

數據壓縮是存儲傳輸的基礎技能。Linux 下 zip、tar、tar.gz、tar.bz2 四大主流格式各有優勢,本文系統整理核心命令、參數解析、壓縮率對比、跨平台兼容性,助你按場景精準選型。

格式特性對比速查

格式算法壓縮率速度跨平台典型場景
zipDeflate中快★★★★★ (Win/Mac/Linux 原生)與 Windows 用戶交換文件、簡單打包
tar無(僅打包)無極快★★★★☆ (Linux 標準,Win 需工具)大量小文件聚合、備份前打包
tar.gzgzip (LZ77)高快★★★★☆ (Linux 標準,Win 需工具)Linux 間傳輸、日志歸檔、源碼發布
tar.bz2bzip2 (BWT)最高慢★★★☆☆ (Linux 標準,Win 需工具)長期存檔、極限壓縮、軟件包發布
tar.xzLZMA2極高極慢★★★☆☆內核源碼、大型軟件包發布(現代首選)

核心命令速查表

zip / unzip

# 壓縮目錄(-r 遞歸)
zip -r archive.zip dir/

# 壓縮文件
zip archive.zip file1 file2

# 解壓到當前目錄
unzip archive.zip

# 解壓到指定目錄
unzip archive.zip -d /target/path

# 查看壓縮包內容不解壓
unzip -l archive.zip

tar(僅打包,不壓縮)

# 打包
tar -cvf archive.tar dir/

# 解包到當前目錄
tar -xvf archive.tar

# 解包到指定目錄
tar -xvf archive.tar -C /target/path

# 只查看內容
tar -tvf archive.tar

tar.gz(gzip 壓縮,最通用)

# 壓縮
tar -zcvf archive.tar.gz dir/

# 解壓
tar -zxvf archive.tar.gz

# 指定解壓目錄
tar -zxvf archive.tar.gz -C /target/path

tar.bz2(bzip2 壓縮,壓縮率最高)

# 壓縮
tar -jcvf archive.tar.bz2 dir/

# 解壓
tar -jxvf archive.tar.bz2

# 指定解壓目錄
tar -jxvf archive.tar.bz2 -C /target/path

tar.xz(LZMA2,現代發布首選)

# 壓縮
tar -Jcvf archive.tar.xz dir/

# 解壓
tar -Jxvf archive.tar.xz

參數含義速記

  • c:Create 創建
  • x:eXtract 解壓
  • v:Verbose 顯示過程
  • f:File 指定文件名(必須緊跟文件名)
  • z:gzip / j:bzip2 / J:xz
  • C:Change directory 解壓目標目錄
  • t:lisT 列表內容

進階實戰技巧

1. 分卷壓縮(大文件傳輸)

# 壓縮並分卷,每卷 100MB
tar -zcvf - large_dir/ | split -b 100M - archive.tar.gz.

# 合併解壓
cat archive.tar.gz.* | tar -zxvf -

2. 排除特定文件/目錄

tar -zcvf archive.tar.gz --exclude='*.log' --exclude='node_modules' dir/

3. 保留權限/屬性/符號鏈接(備份級)

tar -zcvpf archive.tar.gz dir/   # p 保留權限、擁有者、時間戳

4. 遠程直接壓縮傳輸(無本地落盤)

# 本地打包通過 SSH 遠程解包
tar -zcvf - /src/dir | ssh user@remote "tar -zxvf - -C /dst/dir"

# 遠程打包直接下載
ssh user@remote "tar -zcvf - /src/dir" | tar -zxvf - -C /local/dir

5. 多核並行壓縮(大幅提速)

# pigz (並行 gzip)
tar -cvf - dir/ | pigz -p 8 > archive.tar.gz

# pbzip2 (並行 bzip2)
tar -cvf - dir/ | pbzip2 -p 8 > archive.tar.bz2

# 解壓同理
pigz -dc archive.tar.gz | tar -xvf -

選型決策樹

  1. 需與 Windows 用戶交換 → zip
  2. Linux 內部傳輸/備份,追求速度平衡 → tar.gz
  3. 長期歸檔/發布,極限壓縮 → tar.xz (現代) / tar.bz2 (舊兼容)
  4. 海量小文件(如 node_modules、源碼樹) → 先 tar 打包再壓縮,減少 inode 開銷
  5. 需保留完整屬性(備份/遷移) → 加 -p 參數
  6. 超大文件(>10GB) → 分卷 + 並行壓縮
Copyright © Windows教程網 All Rights Reserved