博客 / 詳情

返回

藍易雲cdn:linux中的壓縮軟件介紹

一、Linux 常見壓縮軟件概覽 🧩

在 Linux 下,壓縮通常分兩步:
1)把很多文件打包成一個歸檔;2)對歸檔進行壓縮。
常用工具主要有:<font color="red">tar、gzip、bzip2、xz、zip、7z、zstd</font> 等。


二、常見壓縮工具對比表 📊

工具 文件後綴 典型用途 壓縮率 速度(相對) 特點概述
<font color="red">tar</font> .tar 打包多個文件/目錄(本身不壓縮) 很快 歸檔工具,常與 gzip/xz 等組合
<font color="red">gzip</font> .gz / .tar.gz 日誌壓縮,通用場景 中等 較快 歷史久、兼容性好
<font color="red">bzip2</font> .bz2 / .tar.bz2 對壓縮率有要求的場景 較慢 壓縮率比 gzip 高
<font color="red">xz</font> .xz / .tar.xz 發行包、源碼包壓縮 很高 較慢 壓縮率優秀,CPU 佔用偏高
<font color="red">zip</font> .zip 跨平台傳輸,與 Windows 兼容 中等 中等 單文件即可解壓,含目錄結構
<font color="red">7z</font> .7z 極高壓縮率需求 很高 中等 功能豐富,支持多種算法
<font color="red">zstd</font> .zst / .tar.zst 現代服務器、軟件包壓縮 很快 壓縮率與速度兼顧,現代發行版廣用

三、tar:Linux 歸檔核心工具

1. 打包並使用 gzip 壓縮

tar -czvf backup.tar.gz /data

解釋:

  • tar:歸檔命令,本身只負責“打包”。
  • -c:創建新歸檔(create)。
  • -z:通過 <font color="red">gzip</font> 壓縮(生成 .gz)。
  • -v:顯示詳細過程(verbose),方便查看當前打包到哪裏。
  • -f backup.tar.gz:指定輸出文件名。
  • /data:要打包的目錄或文件,可以是多個路徑。

2. 解壓 .tar.gz

tar -xzvf backup.tar.gz -C /tmp/recover

解釋:

  • -x:解包(extract)。
  • -z:表示歸檔經過 gzip 壓縮。
  • -C /tmp/recover:解壓到指定目錄,避免污染當前目錄。

四、gzip:經典壓縮工具

1. 壓縮單個文件

gzip access.log

解釋:

  • gzip access.log:將 access.log 壓縮為 access.log.gz
  • 壓縮後原文件會被替換,如需保留原文件可加 -k(部分版本支持):
gzip -k access.log
  • -k:保留原始文件(keep)。

2. 解壓 .gz 文件

gunzip access.log.gz

解釋:

  • gunzip:與 gzip -d 等價,用於解壓。
  • 解壓後生成原始文件 access.log

五、bzip2 與 xz:追求更高壓縮率

1. 使用 bzip2 壓縮

bzip2 logs.tar

解釋:

  • logs.tar 壓縮為 logs.tar.bz2
  • 原始文件默認刪除,如需保留可使用 -k
bzip2 -k logs.tar

2. 使用 xz 壓縮

xz -z -k backup.tar

解釋:

  • xz:高壓縮率工具,常用於 .tar.xz 格式。
  • -z:壓縮(compress),默認行為,可省略。
  • -k:保留原始文件 backup.tar
  • 輸出為 backup.tar.xz,壓縮率通常高於 gzip、bzip2。

六、zip/unzip:跨平台首選 📦

1. 創建 zip 壓縮包

zip -r project.zip project/

解釋:

  • zip:壓縮並打包為 .zip 文件。
  • -r:遞歸處理目錄(包含子目錄)。
  • project.zip:輸出文件名。
  • project/:需要打包的目錄。

2. 解壓 zip

unzip project.zip -d /opt/project

解釋:

  • unzip:解壓 .zip 文件。
  • -d /opt/project:指定解壓目標目錄。
  • .zip 內部通常包含完整目錄結構,適合在不同系統之間傳輸。

七、7z:高壓縮率與多格式支持

7z a archive.7z /data

解釋:

  • 7z:命令行工具,使用 7-Zip 引擎。
  • a:添加(add),表示創建壓縮包並加入文件。
  • archive.7z:目標壓縮文件。
  • /data:要壓縮的目錄。

7z 支持多種算法和格式,適合對壓縮率要求很高的場景。


八、zstd:現代高性能壓縮工具 ⚡

<font color="red">zstd(Zstandard)</font> 是近年來廣泛使用的壓縮算法,在很多現代發行版、容器鏡像和軟件包格式中都能看到 .zst.tar.zst。它的目標是:在接近 xz 壓縮率的同時,提供接近或優於 gzip 的速度

1. 基本壓縮命令

zstd logfile

解釋:

  • zstd logfile:將 logfile 壓縮為 logfile.zst
  • 默認壓縮級別通常為中等,兼顧速度與壓縮率。

2. 指定壓縮級別並保留原文件

zstd -k -19 database.dump

解釋:

  • -k:保留原始文件。
  • -19:使用較高壓縮級別(數字越大壓縮越高,但越耗時、越佔 CPU)。
  • 輸出為 database.dump.zst,適合“寫一次,看很多次”的備份場景。

3. 解壓 .zst 文件

zstd -d backup.tar.zst

解釋:

  • -d:解壓(decompress)。
  • 解壓後得到 backup.tar,可再配合 tar -xvf 還原文件。

九、壓縮工作流程思維導圖(文字版)🧠

[確定需求]
   ├─ 需要最高壓縮率? → 選擇 <xz>/<7z>/<zstd高等級>
   ├─ 需要兼顧速度?   → 選擇 <gzip>/<zstd默認>
   ├─ 需要跨平台?     → 選擇 <zip>
   └─ 只打包不壓縮?   → 使用 <tar> 單獨歸檔
        ↓
[選擇工具與參數]
        ↓
[執行壓縮命令]
        ↓
[驗證壓縮包(解壓測試/校驗大小)]
        ↓
[投入正式使用或加入備份腳本]

十、實戰選型建議 ✅

  • 備份大量文本日誌:優先考慮 <font color="red">gzip 或 zstd</font>,壓縮/解壓速度快。
  • 發佈源碼包、系統鏡像:適合使用 <font color="red">tar.xz 或 tar.zst</font>,空間利用率高。
  • 與 Windows 用户頻繁交換文件:使用 <font color="red">zip</font> 最方便。
  • 對磁盤空間極度敏感:可嘗試 <font color="red">7z</font> 或高等級 <font color="red">zstd</font>。

掌握這些工具及其基本命令,就能在 Linux 中靈活選擇最適合自己的壓縮方案,讓備份、傳輸、部署都更加高效穩健 💼。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.