每天一条Linux命令(19) gzip (压缩或解压文件)


在Linux系统中,命令gzip用于将一个文件通过特定的压缩算法(Lempel-Zip coding (LZ77))变成一个小的文件。gzip不能直接压缩目录,因此在压缩目录前需先将带目录的文件用tar打包,然后在调用gzip进行压缩。


语法:

gzip [参数选项] [文件]

参数说明:

  • -d 解开压缩文件

  • -v 显示执行过程

  • -l 列出压缩文件的内容信息

  • -c 将内容输出到标准输出,不改变原始文件

  • -r 对目录下所有文件递归进行压缩操作

  • -数字 <1~9> 指定压缩率,默认为6,值越大压缩率越高

  • -t 测试,检查压缩文件是否完整

【注】:gzip无论是解压文件还是压缩文件,其结果都会将源文件删除。


案例:

将目录下的每个文件都单独压缩成 .gz格式文件

[root@master test02]# ls10.py  1.py  2.py  3.py  4.py  5.py  6.py  7.py  8.py  9.py[root@master test02]# gzip *.py[root@master test02]# ls10.py.gz  1.py.gz  2.py.gz  3.py.gz  4.py.gz  5.py.gz  6.py.gz  7.py.gz  8.py.gz  9.py.gz[root@master test02]# 

不解压 .gz文件 查看压缩文件的信息(都是空文件,所以压缩率均为0.0%)

[root@master test02]# ls10.py.gz  1.py.gz  2.py.gz  3.py.gz  4.py.gz  5.py.gz  6.py.gz  7.py.gz  8.py.gz  9.py.gz[root@master test02]# gzip -l *.gz         compressed        uncompressed  ratio uncompressed_name                196                 172   0.0% 10.py                 25                   0   0.0% 1.py                 25                   0   0.0% 2.py                 25                   0   0.0% 3.py                 25                   0   0.0% 4.py                 25                   0   0.0% 5.py                 25                   0   0.0% 6.py                 25                   0   0.0% 7.py                 25                   0   0.0% 8.py                 25                   0   0.0% 9.py                421                 172 -131.4% (totals)[root@master test02]#

解压文件,并显示解压过程

[root@master test02]# ls10.py.gz  1.py.gz  2.py.gz  3.py.gz  4.py.gz  5.py.gz  6.py.gz  7.py.gz  8.py.gz  9.py.gz[root@master test02]# gzip -dv *.gz10.py.gz:    0.0% -- replaced with 10.py1.py.gz:    0.0% -- replaced with 1.py2.py.gz:    0.0% -- replaced with 2.py3.py.gz:    0.0% -- replaced with 3.py4.py.gz:    0.0% -- replaced with 4.py5.py.gz:    0.0% -- replaced with 5.py6.py.gz:    0.0% -- replaced with 6.py7.py.gz:    0.0% -- replaced with 7.py8.py.gz:    0.0% -- replaced with 8.py9.py.gz:    0.0% -- replaced with 9.py[root@master test02]# ls # 注意源文件没有被保留10.py  1.py  2.py  3.py  4.py  5.py  6.py  7.py  8.py  9.py[root@master test02]# 

经验技巧

由于gzip无论是进行解压还是压缩均会删除源文件,因此我们通过gzip附带的如:zcat、zgrep、zless、zdiff等 命令来实现保留源文件的操作

[root@master test02]# ls10.py  1.py  2.py  3.py  4.py  5.py.gz  6.py  7.py  8.py  9.py[root@master test02]# zcat 5.py.gz > 5.py # 将.gz文件内容重新输出到压缩后的文件中[root@master test02]# ls # 可以发现 5.*文件有两个,源文件保留了下来10.py  1.py  2.py  3.py  4.py  5.py  5.py.gz  6.py  7.py  8.py  9.py[root@master test02]# 

 

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页