Linux中使用pigz工具更快的压缩和解压文件
一、概述
pigz(parallel implementation of gzip)是一个并行执行的压缩工具,解压缩比gzip快,同时CPU消耗是gzip的好几倍,在对短时间内CPU消耗较高不受影响的场景下,可以使用pigz。
二、安装
环境说明
操作系统:centos 7.6
配置:4核8g
安装
先安装epel扩展源,再安装pigz
yum install -y epel-release
yum makecache
yum -y install pigz
如何压缩文件
下面几个是常用参数:
-p n: 压缩时使用的核心数量,默认使用所有核心
-k: 压缩后保留源文件
-l: 列出压缩输入的内容。
-6: 默认的压缩级别
-9: 压缩率最高,但是速度慢
-1: 压缩率最低,速度最快
例如:压缩FreeNAS-11.2-U7.iso文件,如果需要保留源文件,可以添加-k参数:
pigz -k FreeNAS-11.2-U7.iso
可以使用-l选项查看压缩后文件的压缩率:
pigz -l FreeNAS-11.2-U7.iso.gz
如何压缩目录
Pigz没有压缩文件夹的选项,只可以压缩单个文件。pigz可以和tar命令一起使用,来压缩文件夹。
tar -cf - /var/log | pigz -k > logs.tar.gz
查看一下压缩信息:
pigz -l logs.tar.gz
如何解压文件
解压单个文件,解压方式:
unpigz -d FreeNAS-11.2-U7.iso.gz
如果需要保留源压缩文件,请添加-k参数
pigz -k -d FreeNAS-11.2-U7.iso.gz
解压一个目录,解压方式:
tar -xf logs.tar.gz
总结
pigz是一个并行执行的压缩工具,解压缩比gzip快,同时CPU消耗是gzip的好几倍,在对短时间内CPU消耗较高不受影响的场景下,可以使用pigz。
三、压缩速度对比
我的/opt目录有15g,下面来测试tar和pigz,对/opt进行压缩。tar压缩
time tar -cf - /opt | pigz -k > opt1.tar.gz
执行输出:
real 7m53.205s
user 6m42.194s
sys 0m32.886s
花费了7分53秒
pigz压缩
time tar -cf - /opt | pigz -k > opt2.tar.gz
输出:
real 4m35.899s
user 6m27.790s
sys 0m31.144s
花费了4分35秒
从结果上来对比,pigz显然更快,换算一下,大概快了41.8%