Linux命令之压缩文件(gzip、bzip2、xz)

本文将会学到的命令

  1. gzip
  2. bzip2
  3. xz

文件压缩的原理

目前我们使用的计算机系统都是使用所谓的bytes单位来计量的,不过事实上,计算机最小的计量单位应该是bits才对。此外,我们知道1 byte = 8 bits。但是,如果今天我们只是记忆一个数字 1 ,电脑会如何记录呢,由于 1 byte = 8 bits,所以每个byte当中会有8个空格,而每个空格可以是0,1,由于我们记录的数字是1,考虑计算机所谓的二进制,如此一来,1会在最右边占据1个bit,而其他的7个bits将会自动的被填上0,其实那7个bits应该是空的才对,不过,为了满足目前我们的操作系统数据的存取,所以就会将该数据转为byte的形态来记录。而一些聪明的计算机工程师就利用一些复杂的计算方式,将这些没有用到的空间丢出来,以让文件占用的空间变小,这就是压缩的技术

另外一种压缩技术是将重复的数据进行统计记录。举例来说,如果数据为[1111…]共有100个1时,那么压缩技术就会记录为“100个1”而不是真的有100个1的位存在,这样也能够精简文件的大小。

简单来说,就是文件里面有很多没有使用的空间存在,并不是完全填满的,而压缩的技术就是将这些空间填满,以让整个文件占用的大小下降。

不过这些压缩过的文件并不能被操作系统直接使用,因此,若要使用这些被压缩过的文件数据,则必须将他还原回未压缩前的模样,这就是所谓的解压缩

压缩后与压缩的文件所占用的磁盘空间大小,就可以被称为压缩比

压缩操作最大的好处就是压缩过的文件容量变小了

常见的压缩指令

由于Linux支持的压缩指令非常多,且不同的指令所用的压缩技术并不相同,所以彼此之间可能就无法互通压缩/解压缩文件。所以为不同指令压缩出来的文件指定不同的后缀名以区分。

常见的扩展名

  • .Z:compress程序压缩的文件
  • .zip:zip程序压缩的文件
  • .gz:gzip程序压缩的文件
  • .bz2:bzip2程序压缩的文件
  • .xz:xz程序压缩的文件
  • .tar:tar程序打包的数据,并没有压缩过
  • .tar.gz:tar程序打包的数据,经过gzip压缩过
  • .tar.bz2:tar程序打包的数据,经过bzip2压缩过
  • .tar.xz:tar程序打包的文件,经过xz压缩过

##gzip ,zcat/zmore/zless/zgrep

gzip可以解开compress,zip与gzip等软件所压缩的文件。至于gzip所建立的压缩文件为*.gz的文件名。

gzip命令的常用参数如下:

  • -c:将压缩的数据输出到屏幕上,可透过数据流重导向来处理
  • -d:解压缩的参数
  • -t:可以用来检验一个压缩文件的一致性,看看文件有没有错误
  • -v:可以显示出原文件/压缩文件的压缩比等信息
  • -#:#是数字的意思,代表压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,预设是-6

以下是gzip的使用示例

#1.找出/etc底下(不含子目录)容量最大的文件,并将它复制到/tmp,然后以gzip压缩
[test@fgr ~]$ ls -ldSr /etc/*
。。。
-rw-r--r--.  1 root root    51787 5月  15 2013 /etc/mime.types
-rw-r--r--.  1 root root    91171 4月  19 15:05 /etc/ld.so.cache
-rw-r--r--.  1 root root   670293 6月   7 2013 /etc/services
[test@fgr ~]$ cd /tmp
[test@fgr tmp]$ cp /etc/services .
[test@fgr tmp]$ gzip -v services
services:        79.7% -- replaced with services.gz
[test@fgr tmp]$ ll /etc/services /tmp/services*
-rw-r--r--. 1 root root 670293 6月   7 2013 /etc/services
-rw-r--r--. 1 test test 136088 4月  19 18:44 /tmp/services.gz

当使用gzip进行压缩时,在默认情况下原本的文件会被压缩为.gz的文件名,原文件就不在存在了。

#2.由于services是文本文件,所以可以使用zcat、zmore、zless、zgrep读取其中的内容
[test@fgr tmp]$ zless services.gz 
# /etc/services:
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值