博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第4周第4课:gzip、bzip2、xz
阅读量:6202 次
发布时间:2019-06-21

本文共 2863 字,大约阅读时间需要 9 分钟。

hot3.png

6.1 压缩打包介绍

Linux的压缩文件格式有:.zip、.gz、.bz2、.xz、.tar.gz、.tar.bz2、.tar.xz

文件压缩打包的主要目的:方便文件传输、减少传输花费的时间、节省带宽。

6.2 gzip压缩工具

使用gzip命令可以压缩或解压缩gz文件,但不能压缩目录文件。

gzip [选项] filename

  • [ ] -d:将压缩文件进行解压缩
  • [ ] -#:压缩等级,1为最差,9为最好,6为默认。
  • [ ] -c:将输出写到标准输出上,并保留源文件。

下面做实验。先生成一个文件,用这个文件执行命令gzip。

find /etc/ -type f -name "*conf" -exec cat{} >> 1.txt ;

把/etc目录中的,文件类型为f的,内容含有conf的文件,用cat逐一查看内容,并将所有内容输出到1.txt中。

  • 直接压缩文件
[root@greenfinch d6z]# du -sh 1.txt    ## 查看文件压缩前的大小3.7M	1.txt[root@greenfinch d6z]# wc -l 1.txt    ## 查看文件内容的总行数44835 1.txt[root@greenfinch d6z]# gzip 1.txt[root@greenfinch d6z]# ls1.txt.gz                   ## 执行gzip命令后,原文件已消失。[root@greenfinch d6z]# du -sh 1.txt.gz  ## 查看文件压缩后的大小460K	1.txt.gz[root@greenfinch d6z]# gzip -d 1.txt.gz  ## 解压缩1.txt.gz文件[root@greenfinch d6z]# ls1.txt                    ## 解压缩后,.gz文件已消失[root@greenfinch d6z]# du -sh 1.txt1.8M	1.txt        ## 显示1.txt文件,较压缩前的文件,已去了冗余。[root@greenfinch d6z]# wc -l 1.txt44835 1.txt         ## 解压后的文件与原文件的行数一致,数据没改动。[root@greenfinch d6z]# gzip -1 1.txt    ## 压缩等级选1时,注意与原文件大小的比较。[root@greenfinch d6z]# du -sh 1.txt.gz540K	1.txt.gz[root@greenfinch d6z]# gunzip 1.txt.gz[root@greenfinch d6z]# ls1.txt[root@greenfinch d6z]# gzip -9 1.txt    ## 压缩等级选9时,注意与原文件和压缩等级为1时的大小的比较。[root@greenfinch d6z]# du -sh 1.txt.gz456K	1.txt.gz[root@greenfinch d6z]# file 1.txt.gz    ## 查看文件属性1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Aug 25 02:17:27 2017, max compression
  • 指定压缩目录,保留源文件。
[root@greenfinch d6z]# gzip -d 1.txt.gz[root@greenfinch d6z]# ls1.txt[root@greenfinch d6z]# gzip -c 1.txt > /tmp/1.txt.gz  ## 将d6z目录中的1.txt压缩后输出到/tmp目录中,保留d6z目录中的1.txt文件。[root@greenfinch d6z]# ls1.txt[root@greenfinch d6z]# ls /tmp/1.txt.gz/tmp/1.txt.gz[root@greenfinch d6z]# file !$file /tmp/1.txt.gz/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Aug 25 02:17:27 2017[root@greenfinch d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt  ## 将/tmp/1.txt.gz文件解压缩,形成的文件输出到/tmp/d6z目录中,并更名为2.txt。/tmp目录中的1.txt.gz文件保留。[root@greenfinch d6z]# ls1.txt  2.txt[root@greenfinch d6z]# wc -l 1.txt 2.txt  ## 两个文件的字符数一致  44835 1.txt  44835 2.txt  89670 总用量[root@greenfinch d6z]# du -sh *.txt1.8M	1.txt1.8M	2.txt

另,zcat 1.txt.gz,命令中的zcat可用来查看压缩文件中的内容。

6.3 bzip2压缩工具

如果系统没有这个软件,先安装软件包:yum install -y bzip2

命令bzip2,压缩或解压缩bz2文件,但不支持压缩目录。比命令gzip的压缩效率高,默认压缩等级为最高级9。

bzip2 [选项] filename

  • [ ] -d:解压缩

  • [ ] -z:执行压缩。可以不加这个参数。

  • 压缩

[root@greenfinch d6z]# bzip2 1.txt[root@greenfinch d6z]# ls1.txt.bz2  2.txt  3.txt  4.txt  6.txt[root@greenfinch d6z]# du -sh 1.txt.bz2180K	1.txt.bz2
  • 解压缩
[root@greenfinch d6z]# bzip2 -d 1.txt.bz2[root@greenfinch d6z]# ls1.txt  2.txt[root@greenfinch d6z]# du -sh *.txt1.8M	1.txt1.8M	2.txt

另,命令bzcat可用来查看压缩文件中的内容。

6.4 xz压缩工具

如果系统没有这个软件,先安装软件包:yum -y install xz

命令xz,用来压缩或解压缩xz文件,但不支持压缩目录。比命令bzip2的压缩效率还高,但占用系统资源较多。

另,命令xzcat可用来查看压缩文件中的内容。

转载于:https://my.oschina.net/greenfinch/blog/1603180

你可能感兴趣的文章