pigz(parallel implementation of gzip)是一个并行执行的压缩工具,解压缩比gzip快,同时CPU消耗是gzip的好几倍,在对短时间内CPU消耗较高不受影响的场景下,可以使用pigz。

环境

​Centos​​7 RAM:2GB , CPU: 4vcpus

安装

# 安装epel扩展源
[root@localhost ~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum makecache
# 安装pigz
[root@localhost ~]# yum -y install pigz

如何压缩文件

下面几个是常用参数:


  • ​-p n​​: 压缩时使用的核心数量,默认使用所有核心
  • ​-k​​: 压缩后保留源文件
  • ​-l​​: 列出压缩输入的内容。
  • ​-6​​: 默认的压缩级别
  • ​-9​​: 压缩率最高,但是速度慢
  • ​-1​​: 压缩率最低,速度最快

例如:压缩​​FreeNAS-11.2-U7.iso​​​文件,如果需要保留源文件,可以添加​​-k​​参数:

[root@localhost ~]# pigz -k FreeNAS-11.2-U7.iso

pigz更快的压缩和解压工具_源文件

可以使用​​-l​​选项查看压缩后文件的压缩率:

[root@localhost ~]# pigz -l FreeNAS-11.2-U7.iso.gz 
compressed original reduced name
576426218 602378240 4.3% FreeNAS-11.2-U7.iso

pigz更快的压缩和解压工具_压缩文件_02

如何压缩目录

Pigz没有压缩文件夹的选项,只可以压缩单个文件。pigz可以和tar​​命令​​一起使用,来压缩文件夹。

[root@localhost ~]# tar -cvf - /var/log | pigz -k > logs.tar.gz

pigz更快的压缩和解压工具_压缩率_03

查看一下压缩信息:

[root@localhost ~]# pigz -l logs.tar.gz 
compressed original reduced name
698038 9093120 92.3% logs.tar
[root@localhost ~]#

pigz更快的压缩和解压工具_压缩文件_04

如何解压文件

解压单个文件,解压方式:

[root@localhost test]# unpigz -d FreeNAS-11.2-U7.iso.gz 
# 如果需要保留源压缩文件,请添加-k参数
[root@localhost test]# pigz -k -d FreeNAS-11.2-U7.iso.gz

解压一个目录,解压方式:

[root@localhost test]# tar -xf logs.tar.gz

pigz更快的压缩和解压工具_压缩率_05

总结

pigz是一个并行执行的压缩工具,解压缩比gzip快,同时CPU消耗是gzip的好几倍,在对短时间内CPU消耗较高不受影响的场景下,可以使用pigz。