技術文章 · IT 指令工具箱

gzip、bzip2、xz、zstd 壓縮指令:壓縮、解壓與保留原檔

整理 gzip、bzip2、xz、zstd 的壓縮與解壓指令,包含保留原檔、查看資訊、測試檔案完整性、調整壓縮等級與串流用法。

作者 Steve Chen · 發布  · 約 4 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

這四種工具處理的是單一資料流,不像 tar 會保存整個目錄結構。資料夾通常先用 tar 打包,再交給 gzip、xz 或 zstd 壓縮。

20 組範例LinuxmacOS(部分需安裝)查核日期:2026-08-11
動手前:有些指令預設會用壓縮檔取代原檔。正式資料先複製到測試目錄,或使用 keep/stdout 模式;不要只靠副檔名判斷檔案內容。

gzip 與 gunzip

壓縮單一檔案Linux/macOS

gzip report.log

成功後通常留下 report.log.gz,原檔會被移除。

壓縮並保留原檔GNU gzip

gzip --keep report.log

macOS 內建 gzip 版本可能沒有 --keep,可改用 stdout。

用 stdout 壓縮並保留原檔Linux/macOS

gzip -c report.log > report.log.gz

-c 把結果送到標準輸出,原檔不變。

解開 .gzLinux/macOS

gunzip report.log.gz

通常會還原成 report.log 並移除 .gz。

解開但保留 .gzLinux/macOS

gzip -dc report.log.gz > report.log

先確認 report.log 不存在,避免 > 覆蓋舊檔。

測試 gzip 完整性Linux/macOS

gzip -t report.log.gz && echo 'gzip OK'

只測壓縮資料結構,不代表內容符合業務需求。

查看 gzip 壓縮資訊GNU gzip

gzip -l report.log.gz

顯示壓縮前後大小與比例。

選擇速度優先Linux/macOS

gzip -1 -c report.log > report.fast.gz

-1 較快、壓縮率較低;適合臨時傳輸。

選擇壓縮率優先Linux/macOS

gzip -9 -c report.log > report.small.gz

-9 較慢,先評估 CPU 與處理時間。

bzip2 與 xz

bzip2 壓縮並保留原檔Linux/macOS

bzip2 -k database.sql

產生 database.sql.bz2;-k 保留來源。

解開 bzip2 並保留壓縮檔Linux/macOS

bzip2 -dk database.sql.bz2

如果目的檔已存在會拒絕或詢問,依版本而異。

測試 bzip2 完整性Linux/macOS

bzip2 -t database.sql.bz2

結束碼 0 才代表壓縮資料通過測試。

xz 壓縮並保留原檔Linux/macOS

xz -k disk-image.raw

產生 .xz;大型檔案壓縮前先看磁碟空間。

解開 xz 並保留壓縮檔Linux/macOS

xz -dk disk-image.raw.xz

-d 解壓、-k 保留來源。

查看 xz 檔案資訊Linux/macOS

xz --list disk-image.raw.xz

可先看未壓縮大小與記憶體需求。

測試 xz 完整性Linux/macOS

xz --test disk-image.raw.xz

只做完整性檢查,不輸出內容。

zstd

zstd 壓縮並保留原檔Linux/macOS(需安裝)

zstd --keep backup.sql

zstd 通常兼顧速度與壓縮率。

zstd 解壓並保留壓縮檔Linux/macOS(需安裝)

zstd -d --keep backup.sql.zst

目的檔已存在時不要直接加 --force。

zstd 測試完整性Linux/macOS(需安裝)

zstd --test backup.sql.zst

適合傳輸後先驗檔。

zstd 多執行緒壓縮Linux/macOS(需安裝)

zstd -T0 --keep large-file.bin

-T0 會使用可用核心;共用主機要評估 CPU 影響。

怎麼確認有做對

  • 先用 file <檔案> 確認實際格式。
  • 使用各工具的 test 模式檢查壓縮資料。
  • 重要檔案另算 SHA-256,傳輸前後比對。

常見錯誤

  • 把資料夾直接交給 gzip;gzip 本身不保存目錄樹。
  • 忘記工具預設可能移除原檔。
  • 用 > 輸出時覆蓋既有同名檔案。
  • 在共用主機把壓縮等級或執行緒開滿,拖慢線上服務。

版本與官方文件

參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。

聯絡廷皓討論 看更多文章