gzip,bzip2,xz压缩工具详解

压缩格式介绍

在Windows下,我们接触最多的压缩文件是.rar格式的,但是在Linux下,不能识别这种格式,它有自己独特的压缩工具。但.zip格式的文件在Windows和Linux下都能使用。使用压缩文件,不仅能节省磁盘空间,而且在传输时还能节省网络宽带。

Linux下最常见的压缩文件通常都是.tar .gz格式的,除此之外,还有.tar , .gz, .bz2 ,.zip等格式。
虽然Linux下文件的后缀名可加可不加,但压缩文件最好加上后缀名。这是为了判断压缩文件是由哪种压缩工具所压缩的,而后才能正确的解压这个文件。

在Linux下常见的后缀名所对应的压缩工具
- .gz 表示由gzip压缩工具压缩的文件。
- .bz2 表示由bzip2压缩工具压缩的文件。
- .tar 表示由tar打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)。
- .tar .gz 可以理解为先由tar打包,然后再由gzip压缩。
- .tar .bz2 可以理解为先由tar打包,然后再由bzip2压缩。
- .tar .xz 可以理解为先由tar打包,然后再xz压缩。


gzip压缩工具

  1. 命令语法
    gzip(选项)(参数)

  2. 命令描述
    gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
    gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

  3. 命令选项
    -d 该参数在解压时使用;
    -# 表示压缩等级,1为最差,9为最好,6为默认;
    -c 表示压缩之后原文件不变,压缩文件放到指定的目录;

  4. 命令示例

    • 添加给1.txt文件内容;
[root@localhost d6z]# find /etc/ -type f -name "*conf"  -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
252K    1.txt
[root@localhost d6z]# find /etc/ -type f -name "*conf"  -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
704K    1.txt
[root@localhost d6z]# find /etc/ -type f -name "*conf"  -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
1.2M    1.txt
[root@localhost d6z]# find /etc/ -type f -name "*conf"  -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
1.2M    1.txt
[root@localhost d6z]# find /etc/ -type f -name "*conf"  -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
2.2M    1.txt

以上代码可以看出在1.txt里增加同样的内容,但是每次增加后的大小并不相同。


  • 压缩并解压;
[root@localhost d6z]# du -sh 1.txt
2.2M    1.txt
[root@localhost d6z]# wc -l 1.txt   //wc -l 用来计算一个文档的行数。
32375 1.txt
[root@localhost d6z]# gzip 1.txt    ​//压缩1.txt
[root@localhost d6z]# ls
1.txt.gz
[root@localhost d6z]# du -sh 1.txt.gz
332K    1.txt.gz
[root@localhost d6z]# gzip -d 1.txt.gz    ​//解压1.txt
[root@localhost d6z]# ls
1.txt
[root@localhost d6z]# du -sh 1.txt
1.3M    1.txt
[root@localhost d6z]# wc -l 1.txt       //显示行数
32375 1.txt

说明:
压缩之前是2.2M,32375个字节。
压缩之后1.txt文件加了一个后缀名.gz,文件大小变成了332K。
解压之后,文件大小变成了1.3M,字节依然没有改变还是32375。


  • 设置压缩级别;
[root@localhost d6z]# gzip -9 1.txt   //设置压缩级别为9级别
[root@localhost d6z]# du -sh 1.txt.gz  
328K    1.txt.gz
[root@localhost d6z]# ls
1.txt.gz
[root@localhost d6z]# zcat 1.txt.gz  //查看压缩后的文件内容、
[root@localhost d6z]# gzip -d 1.txt.gz

说明:这里的压缩级别,最小是1,最大是9,默认的6。推荐大家用6级别就行,因为压缩到一定的程度就不会压缩了。而且压缩的级别越大,耗费的cpu资源越大。


  • 使用-c选项,压缩之后原文件不变,压缩文件放到/tmp/1.txt.gz中;
[root@localhost d6z]# gzip -c 1.txt > /tmp/1.txt.gz    //压缩1.txt并把压缩后的文件放到/tmp下
[root@localhost d6z]# ls
1.txt
[root@localhost d6z]# ls /tmp/1.txt.gz
/tmp/1.txt.gz
[root@localhost d6z]# file !$  //查看压缩后的文件的详细信息
file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Nov 10 09:11:57 2017

  • 解压,把压缩文件和压缩后的文件放到指定目录;
[root@localhost d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt      //解压1.txt文件,并不删除压缩文件,把压缩文件放到/tmp/d6z/2.txt中。
[root@localhost d6z]# wc -l 1.txt 2.txt     //计算总行数
  32375 1.txt
  32375 2.txt
  64750 总用量
[root@localhost d6z]# du -sh *.txt
1.3M    1.txt
1.3M    2.txt

bzip2压缩工具

  1. 命令语法
    bzip2 [-dz] filename //压缩时,加或不加-选项都可以压缩文件。

  2. 命令描述
    gzip命令用来压缩文件。bzip2是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.bz”扩展名。

  3. 命令选项
    -d 解压
    -z 压缩<可加可不加>

  4. 命令示例

    • 安装bzip2
 #yum install -y bzip2
[root@localhost d6z]# bzip2 1.txt     //使用bzip2压缩1.txt;
[root@localhost d6z]# ls
1.txt.bz2  2.txt
[root@localhost d6z]# du -sh 1.txt.bz2    //查看使用bzip2压缩后的1.txt文件大小;
160K    1.txt.bz2
[root@localhost d6z]# du -sh 2.txt      //查看使用gzip压缩后的1.txt文件大小,可见bzip2压缩后的文件更小一点;
1.3M    2.txt
[root@localhost d6z]# bzip2 -d 1.txt.bz2    //解压bzip2压缩的1.txt文件;
[root@localhost d6z]# bzip2 1.txt       //压缩1.txt文件;
[root@localhost d6z]# bunzip2 1.txt.bz2    //使用bunzip2压缩1.txt文件。 和bzip2压缩一样;    
[root@localhost d6z]# ls
1.txt  2.txt
[root@localhost d6z]# bzip2 -c  1.txt > /tmp/1.txt.bz2    //使用-c选项,把压缩后的1.txt 放到 /tmp/1.txt.bz2中;
[root@localhost d6z]# du -sh /tmp/1.txt.bz2
160K    /tmp/1.txt.bz2
[root@localhost d6z]# bzip2 -d -c /tmp/1.txt.bz2 >3.txt    //解压并指定目录,把解压后的文件重命名为3.txt;
[root@localhost d6z]# ls
1.txt  2.txt  3.txt
[root@localhost d6z]# du -sh 3.txt        //查看解压后的文件大小;
1.3M    3.txt
[root@localhost d6z]# bzip2 -9 1.txt        //使用bzip2的9级别压缩1.txt文件;
[root@localhost d6z]# du -sh 1.txt.bz2      //查看压缩后的文件大小;
160K    1.txt.bz2
[root@localhost d6z]# file 1.txt.bz2       //查看压缩后的文件详细信息;
1.txt.bz2: bzip2 compressed data, block size = 900k
[root@localhost d6z]# bzcat 1.txt.bz2      //查看压缩后的文件内容(由于文件内容过大,不在显示)

xz压缩工具

  1. 命令语法
    xz [-dz] filename

  2. 命令描述
    xz命令用来压缩文件。文件经它压缩过后,其名称后面会多处“.xz”扩展名

  3. 命令选项
    -z 压缩<此选项可加可不加>
    -d 解压

  4. 命令示例

[root@localhost d6z]# ls  
1.txt.bz2  2.txt  3.txt
[root@localhost d6z]# xz 2.txt        //使用xz工具压缩2.txt文件;
[root@localhost d6z]# ls
1.txt.bz2  2.txt.xz  3.txt
[root@localhost d6z]# du -sh 2.txt.xz     //查看压缩后的文件大小;
60K 2.txt.xz
[root@localhost d6z]# xz -d 2.txt.xz     //使用-d选项解压xz压缩的文件;
[root@localhost d6z]# xz 2.txt        //使用xz工具压缩2.txt文件;
[root@localhost d6z]# unxz 2.txt.xz      //使用unxz解压2.txt文件;
[root@localhost d6z]# ls
1.txt.bz2  2.txt  3.txt
[root@localhost d6z]# xz -c 2.txt > /tmp/2.txt.xz    //压缩后,原文件不消失,并把压缩后的文件重定向到/tmp/2.txt.xz中;
[root@localhost d6z]# xz -d -c /tmp/2.txt.xz > ./4.txt  //解压xz的文件并且指定解压到./4txt中,同时保留压缩文件。
[root@localhost d6z]# xzcat /tmp/2.txt.xz    //查看压缩后的文件内存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gzipbzip2、zip和xz是常见的压缩和解压缩工具gzip是用于压缩和解压缩文件的工具,可以使用"gzip -d"命令来解压缩gzip文件。bzip2也是一种压缩和解压缩文件的工具压缩后的文件大小比gzip小,但它耗费CPU资源较多,可以使用"bzip2 -d"命令来解压缩bzip2文件。zip是一种常见的压缩和解压缩多个文件或文件夹的工具,可以使用"unzip"命令来解压缩zip文件。xz是一种结合tar使用的压缩和解压缩工具,可以使用"xz -d"命令来解压缩xz文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux压缩命令gzipbzip2、xz、zip区别](https://blog.csdn.net/u014270566/article/details/104257290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [压缩打包介绍及gzipbzip2、xz、zip压缩工具](https://blog.csdn.net/weixin_33738578/article/details/92417491)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值