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 單檔壓縮經典:gzip/gunzip 參數詳解、壓縮等級、管線應用與 tar 整合

編輯:Linux 教學

gzip(GNU Zip)是 Linux 最普及的單檔壓縮工具,gunzip 為其硬連結(gzip -d)。本文詳解參數、壓縮等級選擇、管線串聯、與 tar 整合的黃金組合。

一、 核心參數

參數功能
-d解壓(等同 gunzip)
-r遞歸壓縮目錄下所有檔案(不壓縮目錄本身)
-t測試完整性
-v顯示每檔壓縮比與名稱
-l列出壓縮資訊(壓縮/未壓縮大小、比率、檔名)
-NUM壓縮等級 1-9,-1/-fast 最快,-9/-best 最小,預設 6
-c輸出至標準輸出(不刪除原檔)
-k保留原檔(預設壓縮後刪除原檔)
-f強制覆蓋

二、 關鍵特性

  • 僅壓縮單一檔案:目錄需配合 tar 先歸檔再壓縮(.tar.gz)
  • 串流特性:gzip -c file > file.gz 保留原檔,適合管線
  • 預設副檔名:.gz

三、 實戰範例

1. 壓縮單一檔案(最高壓縮、保留原檔、顯示過程)

gzip -9vk large.sql
# large.sql: 65.2% -- replaced with large.sql.gz

2. 查看壓縮資訊

gzip -l large.sql.gz
# compressed uncompressed ratio uncompressed_name
#   3456789   10234567  65.2% large.sql

3. 解壓

gzip -d large.sql.gz
# 或
gunzip large.sql.gz

4. 遞歸壓縮目錄下所有檔(不建議,破壞目錄結構)

gzip -rv /var/log
# 產生 /var/log/syslog.gz, /var/log/auth.log.gz ... 目錄結構保留但每檔獨立壓縮

5. 管線應用:tar 歸檔 → gzip 壓縮 → 網路傳輸

# 本地備份
tar -czf /backup/etc.tar.gz /etc
# 等同
tar -c /etc | gzip -9 > /backup/etc.tar.gz

# 遠端備份(SSH 管線)
tar -c /etc | gzip -9 | ssh user@backup-server "cat > /backup/etc_$(date +%F).tar.gz"

# 解壓管線
ssh user@backup-server "cat /backup/etc.tar.gz" | gzip -d | tar -x -C /

6. zcat/zgrep/zless 直接操作壓縮檔


zcat access.log.gz | head
zgrep "ERROR" app.log.gz
zless syslog.gz

四、 壓縮等級選擇指南

等級速度壓縮比適用場景
1 (fast)最快最低即時傳輸、高頻日志壓縮
6 (default)平衡良好通用備份、日志輪轉
9 (best)最慢最高長期封存、網路傳輸頻寬敏感

五、 結語

gzip 是「單檔壓縮標準」,tar + gzip 是「歸檔壓縮黃金組合」。掌握 -c 串流輸出、-k 保留原檔、-l 查看資訊、z* 族群直接讀取、壓縮等級權衡,即能駕馭 99% 的單檔/串流壓縮場景。現代替代者 zstd(zstd -19)在同壓縮比下速度快 3-5 倍,值得在新環境評估採用。

Copyright © Windows教程網 All Rights Reserved