gzip

一个在Linux下比较常用的的压缩指令,可以将一个文件压缩成一个以 .gz 结尾的压缩文件


准备工作

[root@localhost etc]# cp /etc/man.config /tmp
[root@localhost etc]# cd /tmp
[root@localhost tmp]# ll
total 12
-rw-r--r--. 1 root root 2730 Jul 27 03:45 chkconfig.txt
-rw-r--r--. 1 root root 4940 Aug 17 12:37 man.config


1.压缩 man.config 文件

[root@localhost tmp]# gzip man.config
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 2730 Jul 27 03:45 chkconfig.txt
-rw-r--r--. 1 root root 2184 Aug 17 12:37 man.config.gz

可以看到 源文件 man.config 没有了,取而代之的是一个以 .gz 结尾的压缩文件.与源文件对比,可以发现大小确实有缩小


2.解压缩 man.config.gz

[root@localhost tmp]# gzip -d man.config.gz
[root@localhost tmp]# ll
total 12
-rw-r--r--. 1 root root 2730 Jul 27 03:45 chkconfig.txt
-rw-r--r--. 1 root root 4940 Aug 17 12:37 man.config


3.如果想保留源文件,可以使用以下的命令

[root@localhost tmp]# gzip -c man.config >>man.config.gz
[root@localhost tmp]# ll
total 16
-rw-r--r--. 1 root root 2730 Jul 27 03:45 chkconfig.txt
-rw-r--r--. 1 root root 4940 Aug 17 12:37 man.config
-rw-r--r--. 1 root root 2184 Aug 17 13:02 man.config.gz


4.测试压缩文件是否有错

[root@localhost tmp]# gzip -tv man.config.gz
man.config.gz:   OK

其中

-t 参数是 检查压缩文件是否有错

-v 参数显示较详细资讯,在压缩过程中使用,还能显示压缩比等信息

[root@localhost tmp]# gzip -v man.config
man.config:  56.4% -- replaced with man.config.gz


5.gzip 有9个压缩等级 其中 -9 压缩比最好 -1 压缩速度最快 默认的压缩等级是 -6

[root@localhost tmp]# gzip -cv -1 man.config >>man.config1.gz
man.config:  53.4%
[root@localhost tmp]# gzip -cv -9 man.config >>man.config9.gz
man.config:  56.4%
[root@localhost tmp]# ll
total 20
-rw-r--r--. 1 root root 2730 Jul 27 03:45 chkconfig.txt
-rw-r--r--. 1 root root 4940 Aug 17 12:37 man.config
-rw-r--r--. 1 root root 2332 Aug 17 13:14 man.config1.gz
-rw-r--r--. 1 root root 2184 Aug 17 13:15 man.config9.gz

可以看出,不同压缩比确实有区别


我们顺便介绍一下 linux 下另一个比较常用的压缩命令 bzip2 它的使用方法与 gzip 基本相同,但它生成的文件后缀名为 .bz2  我们实际来做一下

[root@localhost tmp]# bzip2 -zkv man.config
  man.config:  2.251:1,  3.555 bits/byte, 55.57% saved, 4940 in, 2195 out.
[root@localhost tmp]# ll
total 24
-rw-r--r--. 1 root root 2730 Jul 27 03:45 chkconfig.txt
-rw-r--r--. 1 root root 4940 Aug 17 12:37 man.config
-rw-r--r--. 1 root root 2332 Aug 17 13:14 man.config1.gz
-rw-r--r--. 1 root root 2184 Aug 17 13:15 man.config9.gz
-rw-r--r--. 1 root root 2195 Aug 17 12:37 man.config.bz2
其中压缩时需要加 -z 参数
-k 可以保留源文件
从压缩结果来看 bzip2 有更好的压缩效果