欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

6.2-gzip压缩工具

程序员文章站 2024-03-14 09:27:04
...

gzip压缩工具,可以压缩文件,不能压缩目录

快速生成一个大文件

[[email protected] ~]# dd if=/dev/zero of=/home/evan1/big.txt bs=1M count=200         
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 1.16603 s, 180 MB/s
[[email protected] ~]# du -sh /home/evan1/big.txt 
200M    /home/evan1/big.txt
[[email protected] ~]# 

压缩文件
压缩

[[email protected] ~]# cd /home/evan1
[[email protected] evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[[email protected] evan1]# gzip big.txt
[[email protected] evan1]# ll
total 200
-rw-r--r--. 1 root root 203555 Aug 21 11:50 big.txt.gz
[[email protected] evan1]#

看下压缩后的大小

[[email protected] evan1]# du -sh big.txt.gz 
200K    big.txt.gz
[[email protected] evan1]# 

压缩后发现文件变得小了,才200k

-d 解压文件
解压

[[email protected] evan1]# gzip -d big.txt.gz 
[[email protected] evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[[email protected] evan1]#

解压后原来的 big.txt 文件又回来了

看下解压后的大小

[[email protected] evan1]# du -sh big.txt 
200M    big.txt
[[email protected] evan1]#

还是原来的大小 200M

-# 指定压缩级(1~9,默认是6)

[[email protected] evan1]# gzip -1 big.txt 
[[email protected] evan1]# du -sh big.txt.gz 
896K    big.txt.gz
[[email protected] evan1]# 

对比前面的大小,发现压缩级别低的话,压缩出来的文件就相对来说比较大些。一般我们都使用默认级别,默认级别为 6。压缩级别过大,耗费cpu资源就会比较大

另一种解压方法
gunzip filename

[[email protected] evan1]# gunzip big.txt.gz 
[[email protected] evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[[email protected] evan1]# 

再压缩一次,级别选择9

[[email protected] evan1]# gzip -9 big.txt 
[[email protected] evan1]# du -sh big.txt.gz 
200K    big.txt.gz
[[email protected] evan1]# 

发现压缩级别 9 的和第一次默认压缩级别压缩出来的大小是一样的。
压缩到一定级别后,就不再往下压缩了

压缩后的文件的查看
压缩后的文件是一个二进制的文件,没办法进行直接查看,查看方式 zcat filename

[[email protected] evan1]# zcat big.txt.gz

指定目录压缩
这种压缩压缩前的文件和压缩后的文件可以同时存在

先解压

[[email protected] evan1]# ll
total 200
-rw-r--r--. 1 root root 203555 Aug 21 11:50 big.txt.gz
[[email protected] evan1]# gzip -d big.txt.gz 
[[email protected] evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[[email protected] evan1]# 

压缩

[[email protected] evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[[email protected] evan1]# gzip -c big.txt > /home/evan2/big.tar.gz
[[email protected] evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[[email protected] evan1]# ll /home/evan2/big.tar.gz 
-rw-r--r--. 1 root root 203555 Aug 21 14:28 /home/evan2/big.tar.gz
[[email protected] evan1]# 

指定目录解压文件
这种解压前的文件和解压后的文件可以同时存在

解压

[[email protected] evan1]# gzip -d -c /home/evan2/big.tar.gz > /home/evan1/big2.txt
[[email protected] evan1]# ll
total 409600
-rw-r--r--. 1 root root 209715200 Aug 21 14:30 big2.txt
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[[email protected] evan1]#