gzip压缩工具,可以压缩文件,不能压缩目录
快速生成一个大文件
[root@evan-01 ~]# 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
[root@evan-01 ~]# du -sh /home/evan1/big.txt
200M /home/evan1/big.txt
[root@evan-01 ~]#
压缩文件
压缩
[root@evan-01 ~]# cd /home/evan1
[root@evan-01 evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[root@evan-01 evan1]# gzip big.txt
[root@evan-01 evan1]# ll
total 200
-rw-r--r--. 1 root root 203555 Aug 21 11:50 big.txt.gz
[root@evan-01 evan1]#
看下压缩后的大小
[root@evan-01 evan1]# du -sh big.txt.gz
200K big.txt.gz
[root@evan-01 evan1]#
压缩后发现文件变得小了,才200k
-d 解压文件
解压
[root@evan-01 evan1]# gzip -d big.txt.gz
[root@evan-01 evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[root@evan-01 evan1]#
解压后原来的 big.txt 文件又回来了
看下解压后的大小
[root@evan-01 evan1]# du -sh big.txt
200M big.txt
[root@evan-01 evan1]#
还是原来的大小 200M
-# 指定压缩级(1~9,默认是6)
[root@evan-01 evan1]# gzip -1 big.txt
[root@evan-01 evan1]# du -sh big.txt.gz
896K big.txt.gz
[root@evan-01 evan1]#
对比前面的大小,发现压缩级别低的话,压缩出来的文件就相对来说比较大些。一般我们都使用默认级别,默认级别为 6。压缩级别过大,耗费cpu资源就会比较大
另一种解压方法
gunzip filename
[root@evan-01 evan1]# gunzip big.txt.gz
[root@evan-01 evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[root@evan-01 evan1]#
再压缩一次,级别选择9
[root@evan-01 evan1]# gzip -9 big.txt
[root@evan-01 evan1]# du -sh big.txt.gz
200K big.txt.gz
[root@evan-01 evan1]#
发现压缩级别 9 的和第一次默认压缩级别压缩出来的大小是一样的。
压缩到一定级别后,就不再往下压缩了
压缩后的文件的查看
压缩后的文件是一个二进制的文件,没办法进行直接查看,查看方式 zcat filename
[root@evan-01 evan1]# zcat big.txt.gz
指定目录压缩
这种压缩压缩前的文件和压缩后的文件可以同时存在
先解压
[root@evan-01 evan1]# ll
total 200
-rw-r--r--. 1 root root 203555 Aug 21 11:50 big.txt.gz
[root@evan-01 evan1]# gzip -d big.txt.gz
[root@evan-01 evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[root@evan-01 evan1]#
压缩
[root@evan-01 evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[root@evan-01 evan1]# gzip -c big.txt > /home/evan2/big.tar.gz
[root@evan-01 evan1]# ll
total 204800
-rw-r--r--. 1 root root 209715200 Aug 21 11:50 big.txt
[root@evan-01 evan1]# ll /home/evan2/big.tar.gz
-rw-r--r--. 1 root root 203555 Aug 21 14:28 /home/evan2/big.tar.gz
[root@evan-01 evan1]#
指定目录解压文件
这种解压前的文件和解压后的文件可以同时存在
解压
[root@evan-01 evan1]# gzip -d -c /home/evan2/big.tar.gz > /home/evan1/big2.txt
[root@evan-01 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
[root@evan-01 evan1]#