Categories: Linux

Linux 使用 pigz 平行化 GZip 加速壓縮、解壓縮教學與範例

介紹如何在 Linux 中使用平行化版本的 GZip,使用多 CPU 核心加快壓縮大量資料的速度。

一般 Linux 上標準的 gzip 壓縮工具受限於單一 CPU 核心的運算速度,壓縮資料的吞吐量非常有限,資料量大時會耗費非常久的時間。

pigz 是平行化版本的 GZip 壓縮工具,可以運用多 CPU 核心大幅提升資料壓縮的速度,以下是 pigz 的使用教學。

安裝 pigz

若要在 Ubuntu Linux 系統上安裝 pigz,可以使用 apt 安裝:

# 安裝 pigz(Ubuntu)
sudo apt install pigz

若是 CentOS Linux,則可使用 yum 安裝:

# 安裝 pigz(CentOS)
sudo yum install pigz

壓縮檔案

pigz 的使用方式跟 gzip 非常類似,若要使用 pigz 壓縮單一檔案,可以執行:

# 壓縮檔案
pigz large_file

壓縮之後就會產生一個 large_file.gz 壓縮檔,而原始的檔案則會被刪除,若要保留原始檔案,可以加上 -k 參數。

若要指定壓縮的程度,可以使用 -1-9 參數,-1 代表壓縮速度最快,但壓縮後檔案最大:

# 壓縮速度快、壓縮後檔案大
pigz -1 large_file

-9 則代表壓縮速度最慢,但壓縮後檔案最小:

# 壓縮速度慢、壓縮後檔案小
pigz -9 large_file

解壓縮檔案

若要使用 pigz 解壓縮 GZip 的壓縮檔案,可以使用 -d 參數:

# 解壓縮 GZip 檔案
pigz -d large_file.gz

或是使用 unpigz 也可以:

# 解壓縮 GZip 檔案
unpigz large_file.gz

指定 CPU 核心數

pigz 預設會使用所有的 CPU 核心進行壓縮(或解壓縮),如果要限制其使用的 CPU 核心數,可以用 -p 指定使用的 CPU 核心數上限值,例如使用 4 顆 CPU 核心進行壓縮:

# 使用 4 顆 CPU 核心進行壓縮
pigz -p 4 large_file

tar 搭配 pigz

若要讓 tar 可以搭配 pigz 進行檔案的壓縮,可以在執行 tar 指令時加上 -I 參數將壓縮程式指定為 pigz

# 搭配 pigz 壓縮
tar -I pigz -cf large.tar.gz large_folder

解壓縮的方式相同:

# 搭配 pigz 解壓縮
tar -I pigz -xf large.tar.gz

參考資料:StackOverflow

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

11 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

11 個月 ago