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 有更好的壓縮效果