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 壓縮解壓縮命令大全:tar、gzip、bzip2、xz、zip、7z 完整速查

編輯:Linux 教學

Linux 下檔案打包與壓縮是日常運維的基本功。面對 .tar、.gz、.bz2、.xz、.zip、.7z、.zst 等多種格式,掌握統一的操作模式與核心參數,能讓您從容應對各種場景。本文提供最完整的命令速查表與最佳實踐建議。

核心概念釐清

  • 打包:將多個檔案/目錄合併為單一檔案(tar),不改變資料大小
  • 壓縮:演算法減少資料體積(gzip/bzip2/xz 等)
  • 打包+壓縮:先 tar 打包,再管道或參數壓縮(.tar.gz、.tar.xz 等)

tar:萬能打包神器

核心操作模式

# 四大核心動作(互斥)
-c  --create      建立新檔案
-x  --extract     解壓縮/提取
-t  --list        列出內容
-r  --append      追加檔案到既有歸檔
-u  --update      只追加比歸檔中新的檔案

# 常用修飾參數
-f  --file=FILE     指定歸檔檔案名(必須)
-v  --verbose       顯示過程
-z  --gzip          透過 gzip 壓縮/解壓
-j  --bzip2         透過 bzip2 壓縮/解壓
-J  --xz            透過 xz 壓縮/解壓
--zstd              透過 zstd 壓縮/解壓
-C  --directory=DIR 切換到指定目錄操作
--strip-components=N  提取時去除前 N 級目錄
--exclude=PATTERN   排除模式
--wildcards         配合 --exclude 使用萬用字元

經典組合速查

操作命令說明
打包目錄(無壓縮)tar -cf archive.tar dir/純打包,速度最快
解包tar -xf archive.tar自動偵測壓縮格式
gzip 壓縮打包tar -czf archive.tar.gz dir/速度快、相容性最好
解壓 .tar.gztar -xzf archive.tar.gz自動解壓
bzip2 壓縮打包tar -cjf archive.tar.bz2 dir/壓縮率較高,速度較慢
解壓 .tar.bz2tar -xjf archive.tar.bz2
xz 壓縮打包tar -cJf archive.tar.xz dir/壓縮率最高,CPU 佔用高
解壓 .tar.xztar -xJf archive.tar.xz
zstd 壓縮打包tar --zstd -cf archive.tar.zst dir/速度快、壓縮率高,現代首選
解壓 .tar.zsttar --zstd -xf archive.tar.zst需 tar 1.31+ 支援
列出內容不解壓tar -tf archive.tar.gz快速預覽
指定目錄解壓tar -xf archive.tar -C /target/dir
去除前 1 級目錄tar -xf archive.tar --strip-components=1避免建立頂層目錄
排除特定檔案tar -czf backup.tar.gz --exclude='*.log' --exclude='node_modules' dir/

單獨壓縮工具:單檔案壓縮

gzip / gunzip / zcat

# 壓縮(保留原檔案需 -k)
gzip file.txt           # 產生 file.txt.gz,刪除原檔
gzip -k file.txt        # 保留原檔
gzip -9 file.txt        # 最高壓縮等級(1-9,預設 6)

# 解壓
gunzip file.txt.gz      # 等同 gzip -d
zcat file.txt.gz        # 標準輸出查看內容,不解壓檔案

bzip2 / bunzip2 / bzcat

bzip2 file.txt          # 產生 file.txt.bz2
bzip2 -k file.txt       # 保留原檔
bunzip2 file.txt.bz2    # 解壓
bzcat file.txt.bz2      # 標準輸出查看

xz / unxz / xzcat

xz file.txt             # 產生 file.txt.xz(LZMA2,壓縮率極高)
xz -k -T0 file.txt      # 多執行緒(0=自動核心數)
unxz file.txt.xz
xzcat file.txt.xz

zstd(現代高效能首選)

zstd file.txt           # 預設等級 3,速度極快
zstd -19 file.txt       # 高壓縮等級(1-19,預設 3)
zstd -T0 file.txt       # 多執行緒
unzstd file.txt.zst
zstdcat file.txt.zst

跨平台交換格式

zip / unzip

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

# 加密
zip -e secret.zip secret.txt

# 解壓
unzip archive.zip
unzip -l archive.zip   # 列出內容
unzip -d /target archive.zip  # 指定目錄

7z(壓縮率之王,跨平台)

# 安裝:p7zip-full / p7zip
7z a archive.7z dir/           # 建立
7z a -t7z -m0=lzma2 -mx=9 archive.7z dir/  # 最高壓縮
7z x archive.7z                # 解壓(保留目錄結構)
7z l archive.7z                # 列出內容

rar / unrar(專有格式,解壓免費)

# 解壓
unrar x archive.rar

# 壓縮(需專有 rar 程式)
rar a archive.rar dir/

現代高效能壓縮:zstd 全面解析

# 安裝
# CentOS: yum install zstd
# Ubuntu: apt install zstd

# 壓縮等級 1-19(預設 3,平衡速度/壓縮率)
zstd -3 file.tar          # 快速,預設
zstd -19 file.tar         # 最高壓縮,接近 xz -9
zstd --fast=10 file.tar   # 極速模式(1-1000)

# 多執行緒(自動偵測核心數)
zstd -T0 file.tar

# 管道流式處理
tar -cf - /data | zstd -T0 -3 > backup.tar.zst
zstdcat backup.tar.zst | tar -xf - -C /restore

格式選型指南

場景推薦格式理由
Linux 系統備份/日誌歸檔.tar.zst / .tar.gzzstd 速度快、壓縮率高;gz 相容性最好
軟體發布/原始碼分發.tar.xz / .tar.gzxz 壓縮率最高,適合下載分發;gz 相容性最好
Windows/Linux 跨平台交換.zip / .7z原生支援無需額外工具
極致壓縮率(備份存儲).7z / .tar.xz7z LZMA2、xz LZMA2 壓縮率最高
高頻備份/即時同步.tar.zstzstd 速度極快,支援多執行緒,現代首選
單檔案快速壓縮.zst / .gzzstd 單檔壓縮速度極快

進階技巧與最佳實踐

多執行緒加速

# xz 多執行緒
xz -T0 file.tar

# zstd 多執行緒
zstd -T0 file.tar

# pigz(平行 gzip)
pigz -p $(nproc) file.tar

# pbzip2(平行 bzip2)
pbzip2 -p$(nproc) file.tar

管道流式備份/還原(不佔用中間磁碟空間)

# 備份
tar -cf - /data --exclude='*.log' | zstd -T0 -3 | ssh user@backup "cat > backup.tar.zst"

# 還原
ssh user@backup "cat backup.tar.zst" | zstd -d | tar -xf - -C /restore

分卷備份(大檔案分割)

# 建立 1GB 分卷
tar -cf - /data | split -b 1G - backup.tar.zst.part.

# 還原
cat backup.tar.zst.part.* | zstd -d | tar -xf -

校驗完整性

# 建立校驗和
sha256sum backup.tar.zst > backup.sha256

# 驗證
sha256sum -c backup.sha256

總結速查卡

# 最常用三組合(覆蓋 95% 場景)
tar -czf archive.tar.gz dir/    # gzip:快、通用
tar -cJf archive.tar.xz dir/    # xz:高壓縮率
tar --zstd -cf archive.tar.zst dir/  # zstd:快且強,現代首選

# 解壓通殺(現代 tar 自動偵測)
tar -xf archive.tar.gz
tar -xf archive.tar.xz
tar -xf archive.tar.zst
tar -xf archive.7z
tar -xf archive.zip

總結

Linux 壓縮工具豐富多樣,核心在於理解打包與壓縮分離的設計哲學。現代環境強烈推薦 zstd(.tar.zst) 作為預設選擇:壓縮速度接近 gzip,壓縮率接近 xz,支援多執行緒,是當前最佳平衡點。跨平台交換首選 .zip 或 .7z。建議建立個人別名:

alias targz='tar -czf'
alias tarxz='tar -cJf'
alias tarzst='tar --zstd -cf'
alias untar='tar -xf'

將壓縮解壓操作內化為肌肉記憶,讓檔案管理輕鬆高效。

Copyright © Windows教程網 All Rights Reserved