Linux】 gzip压缩 、 bzip2压缩 、 xz压缩 的区别比较?

2021-03-29 13:50发布

4条回答
IT学习
2楼 · 2021-04-01 11:42

gzip打包并压缩:tar -zcvf 压缩包名称 待打包文件1 待打包文件2…

gzip格式tar包解压:tar -zxvf 压缩包名称

bzip2打包并压缩:tar -jcvf 压缩包名称 待打包文件1 待打包文件2…

bzip2格式tar包解压:tar -jxvf 压缩包名称

xz打包并压缩:tar -Jcvf 压缩包名称 待打包文件1 待打包文件2…

xz格式tar包解压:tar -Jxvf 压缩包名称



我的网名不再改
3楼 · 2021-04-04 14:09

一、压缩打包介绍


压缩的好处不仅能节省磁盘空间而且在传输的时候还可以节省网络带宽


在windows和linux下都能使用的是.zip格式的文件


主要有以下几种工具:

.gz gzip 压缩工具压缩的文件


.bz2 bzip2 压缩工具压缩的文件


.tar tar 打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)


.tar.gz 可以理解为先用tar打包,然后再gzip压缩


.tar.bz2 同上,先用tar打包,然后再bzip2压缩


二、gzip压缩工具

gzip 1.txt 直接压缩 (原文件消失)

这里写图片描述


gzip -1 1.txt : 压缩等级,1压缩最差,9压缩最好,6为默认(常用)


gzip -d 1.txt : 解压

gunzip 1.txt : 解压


这里写图片描述

file 1.txt :查看压缩信息

这里写图片描述


zcat 1.txt : 查看压缩文件里面内容


gzip -c 1.txt > /tmp/1.txt.gz :将文件压缩指向到/tmp目录下(原文件不消失)

这里写图片描述


gzip -c -d /tmp/1.txt.gz > /root/1.txt.new :将/tmp目录下的1.txt.gz 压缩包,解压指向到/root 目录下并命令为1.txt.new (原压缩文件不消失)

这里写图片描述


gzip 是不支持压缩目录的


三、bzip压缩工具(用法与gzip差不多)

使用命令安装:yum install -y bzip2

这里写图片描述


bzip2 1.txt 或 bzip2 -z 1.txt 直接压缩 (原文件消失)


bzip2 -d 1.txt.bz2 : 解压

bunzip2 1.txt.bz2 : 解压


bzcat 1.txt.bz2 : 查看压缩文件里面内容


bzip2 -c 1.txt > /tmp/1.txt.bz2 :将文件压缩指向到/tmp目录下(原文件不消失)


bzip2 -c -d /tmp/1.txt.bz2 > /root/1.txt.new :将/tmp目录下的1.txt.bz2 压缩包,解压指向到/root 目录下并命令为1.txt.new (原压缩文件不消失)


bzip2 也是不支持压缩目录的


四、xz压缩工具

xz 和 gzip,bzip2 用法是一样的。默认系统没有安装,请使用命令安装: yum install -y xz


xz 1.txt 或 xz -z 1.txt 直接压缩 (原文件消失)


xz -d 1.txt.xz : 解压

unxz 1.txt.xz : 解压


xzcat 1.txt.xz : 查看压缩文件里面内容


xz -c 1.txt > /tmp/1.txt.xz :将文件压缩指向到/tmp目录下(原文件不消失)


xz -c -d /tmp/1.txt.xz > /root/1.txt.new :将/tmp目录下的1.txt.xz 压缩包,解压指向到/root 目录下并命令为1.txt.new (原压缩文件不消失)


xz 也是不支持压缩目录的


回答: 2021-12-15 15:44

压缩

gzip\bzip2\xz压缩:gzip\bzip2\xz 待压缩文件(只能压缩单个文件)

zip压缩:zip 待压缩文件(可以压缩多个文件)

zip压缩:zip -r 待压缩文夹


解压

gzip\bzip2\xz解压:gzip\bzip2\xz -d 待解压文件

zip压缩:unzip +文件 -d 指定路径


gzip\bzip2\xz结合tar使用

tar:打包工具

用法:tar 选项 打包后文件名 待打包文件1 待打包文件2…

选项:

-z压缩为gzip格式.gz

-j压缩为bzip2格式.bz2

-J压缩为xz格式.xz

-c create,打包

-x 解包

-v 可视化,可看到打包过程,

-f 必须加的字段

-u 更新打包文件的文件

-r向打包文件中追加文件


综合:

gzip打包并压缩:tar -zcvf 压缩包名称 待打包文件1 待打包文件2…

gzip格式tar包解压:tar -zxvf 压缩包名称

bzip2打包并压缩:tar -jcvf 压缩包名称 待打包文件1 待打包文件2…

bzip2格式tar包解压:tar -jxvf 压缩包名称

xz打包并压缩:tar -Jcvf 压缩包名称 待打包文件1 待打包文件2…

xz格式tar包解压:tar -Jxvf 压缩包名称


扩展:查看压缩包内容

tar -tf 包名


猫的想法不敢猜
4楼 · 2021-04-05 11:13

要通过脚本进行备份,必然将会应用到压缩技术,这里简单针对几个常见的格式进行测验,从而得到一种合适的方式。

这里以一个应用目录做例子:

  1. [root@isj-test-5 mnt]$du -sh *

  2. 66M isj-wiki

看到目录大小为66M。

以下考虑压缩比与压缩时长两个维度。

1,只打包。

  1. [root@isj-test-5 mnt]$time tar cf isj-wiki.tar isj-wiki

  2. real 0m2.622s

  3. user 0m0.013s

  4. sys 0m2.603s

对应解压命令为:

  1. tar xf isj-wiki.tar

2,tar.gz格式。

注意这种格式需要安装gzip包。

  1. yum -y install gzip

打包。

  1. [root@isj-test-5 mnt]$time tar zcf isj-wiki.tar.gz isj-wiki/

  2. real 0m4.004s

  3. user 0m3.470s

  4. sys 0m0.623s

对应解压命令为:

  1. tar zxf isj-wiki.tar.gz

3,tar.bz2格式。

注意这种格式需要安装bzip2包。

  1. yum -y install bzip2

打包。

  1. [root@isj-test-5 mnt]$time tar jcf isj-wiki.tar.bz2 isj-wiki/

  2. real 0m8.138s

  3. user 0m7.754s

  4. sys 0m0.429s

对应解压命令为:

  1. tar jxf isj-wiki.tar.bz2

4,tar.xz格式。

注意这种格式需要安装xz包。

  1. yum -y install xz

打包。

  1. [root@isj-test-5 mnt]$time tar Jcf isj-wiki.tar.xz isj-wiki/

  2. real 0m29.741s

  3. user 0m26.689s

  4. sys 0m3.192s

对应解压命令为:

  1. tar Jxf isj-wiki.tar.xz

 

5,总结。

从时间上已经可以看出,越来越长排列的。

接下来看重点,看看压缩之后的包大小:

  1. [root@isj-test-5 mnt]$du -sh *

  2. 66M isj-wiki

  3. 64M isj-wiki.tar

  4. 24M isj-wiki.tar.bz2

  5. 26M isj-wiki.tar.gz

  6. 20M isj-wiki.tar.xz

可以看到大小排序与用时排序是成反比的,压缩比越高的,耗时也越久。

最后,综合各方考虑,决定选用bz2这种格式来作为御用的压缩方式。

6,其他技巧

有时候在打包压缩某个目录的时候,某些诸如日志类的是不需要的,因此可以使用如下命令,对不需要的目录进行排除。

  1. tar jcf tomcat.tar.bz2 --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat

注意:在指定排除目录的时候,目录的话结尾不能带/否则将会排除失败。比如--exclude=tomcat/logs如果写成--exclude=tomcat/logs/,则打包的时候还是会打进去。

转载http://www.eryajf.net/2836.html

来源于网络仅供参考

20200921文 - 做更棒的自己!
5楼 · 2021-04-07 11:32

bzip压缩率更高。

相关问题推荐

  • 回答 7

    使用命令:chmod 744 myflile就可以实现以上的操作。

  • 回答 4

    关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主动close,以及epoll多路复用模型中使用linger调整关闭等待时间分析解决这类问题,关...

  • 回答 6
    已采纳

    chmod 命令:chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。1. 文字设定法:chmod [who] [+ | - | =] ...

  • 回答 3
    已采纳

    Linux chattr 命令一般,chattr命令用于更改Linux文件上属性。以下是它的语法:chattr [ -RVf ] [ -v version ] [ mode ] files...下面是man手册对它的描述:chattr 改变一个Linux文件系统上的文件属性。一个通用格式是:+-=[aAcCdDeijsStTu]‘+’选项,将给...

  • 回答 8
    已采纳

    命令格式cat [选项] [文件]...命令功能cat主要有三大功能:一次显示整个文件:cat filename从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.将几个文件合并为一个文件:cat file1 file2 > file命令参数-n 或 --number 对输出的所有行编号,...

  • 回答 3

    shell的执行过程: 首先,脚本是从上至下从左至右执行每一行的语句的。 其次,当执行脚本时会进入一个新的shell,也成为nologin shell,在该shell下执行完成后,再返回执行前的shell。更加详细的讲解请楼主参考鸟哥linux网站中的bash shell章节有图能让您更...

  • 回答 3

    学习linux为什么要学习Shell: 1、首先我们了解一下shell编程是什么,其实shell编程就是一坨linux命令的集合再加上一些控制语句而已 2、为什么要学习linux下的shell编程,我们平时在做运维工作时总会遇到一些重复的工作,如果我们会shell编程的话就可以将这些...

  • 回答 6

    1.服务器一般情况下只有在进行项目部署或者是出现问题的时候才需要进行远程连接操作,在进行连接的时候我们一般都是使用的外部连接软件2.启动软件,点击快速连接,我们要选择连接的协议3.协议选择要然后填写服务器的IP地址和用户名,然后点击连接4.在通过验证...

  • 回答 4

    看看系统内存是否足够多,然后分区的时候是否正常运行

  • 回答 5

    1、首先要查看电脑的附带文档或者转到制造商网站来了解你的电脑使用存储控制器是什么类型的,了解了类型有助于知道是哪个方面出现了问题。2、然后在另一台电脑上同样是转到制造商的网站,将最新的驱动程序下载下来,并且保存在usb闪存驱动器或者是别的可以移...

  • 回答 7

    1、切换到root用户后。2、键入vim /etc/inittab, 就可以查看并修改该配置文件。3、在输入上面的命令后,我们可以看到该配置文件里面的信息如下:4、注意最后的那几行,就是Linux系统默认启动有七种。0:关机(不要设置这个!)1:单用户(类似于windows操作系统...

  • 回答 5
    已采纳

    很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可。步骤如下:重启linux系统重启系统后出现GRUB界面在引导装载程序菜单上,按 E出现内核选择 ,选择第二行 ...

  • 回答 6

    1.正确的关机流程为:sysnc ? shutdown ? reboot ? halt;2.sync 将数据由内存同步到硬盘中。3.shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:4.shutdown –h 10 ‘This server will shutdown after 10 mins’ ...

  • 回答 2

    1、LPIC,全称Linux专业委员会认证2、Oracle联合认证(OCA)3、Oracle专业认证(OCP)4、RHCE,也叫做红帽认证工程师5、RHCA即红帽认证架构师6、SUSE认证Linux管理员(SUSE CLA)7、SUSE认证Linux专业人员(CLP)8、SUSE认证Linux工程师(CLE)...

  • 回答 15
    已采纳

    1、cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:cd /root/Docements # 切换到目录/root/Docementscd ./path          # 切换到当前目录下的path...

  • 回答 7
    已采纳

    目录/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /usr用于存放系统应用程序,比较重要的目录/u...

没有解决我的问题,去提问