组团学 软件包管理(zutuanxue.com)

一、tar
压缩工具的介绍
说到软件管理,就不得不说到tar,因为制作rpm包需要tar,yum需要rpm。而说的到tar又不得不说到压缩和解压缩,所以要先了解一下压缩和解压缩。

由于以前的计算机磁盘容量比较小,业内人士绞尽脑汁,终于开发出了一个能帮助用户节省磁盘的工具,就是压缩工具,我们知道计算机在存储数据的时候都是使用bytes来计算的,但是实际上1byte=8bits,在日常使用中并不是所有的数据都能把这个1byte用完,有的可能用了三个bits,有的可能用了四个bits,而他们的实际占用空间是2bytes=16bits,剩余的空间就浪费了,压缩工具就是通过算法,将占用三个bits的数据和占用四个bits的数据放在一个byte里,这样我们就能节省出来1byte,这种空间的节省,当你在压缩一个包含了很多文本文件的目录时是非常明显的。其实就像没有人知道早高峰的公交车里有多少人一样,一个人理论上占用的公交车内的空间,跟实际占用的空间,往往有很大差别,因为挤挤总能上去的。

压缩工具诞生的初衷和原理我们说完了,那现在它就没用了么?依然有用,只不过现在我们使用压缩工具的目的,更多的是便于存储和传输,在linux系统中压缩工具有很多,不同的工具压缩后的后缀名和大小都有差异,从远古时代说起,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压缩

其中,compress已经过时了,因为太老,个别版本的linux已经不支持了,linux下的压缩工具还是以gzip和bzip2以及后加入的xz作为主力,但是由于这些工具,最早不能压缩目录,只能针对单一文件进行压缩,所以在日常使用中,他们都是配合着tar这个打包工具,由tar把目录中的很多文件打包成一个文件,再经由对应的工具进行压缩,所以我们会看上面的那些tar.*的压缩包。好了我们先来学习下这些压缩工具如何使用

压缩工具的使用
先看下第一个gzip

[root@localhost ~]# gzip -h
Usage: gzip [OPTION]… [FILE]…
-c 保留源文件
-d 解压缩
-h 显示帮助
-t 检查压缩文件的数据一致性,用来确定压缩文件是否有错误
-v 显示压缩包的相关信息,包括压缩比等

-V 显示版本号
-1 压缩最快,压缩比低
-9 压缩最慢,压缩比高
例子:
[root@localhost test]# pwd
/root/test
[root@localhost test]# cp /etc/services ./
[root@localhost test]# gzip -v services
services: 79.4% – replaced with services.gz
[root@localhost test]# ll /etc/services services.gz
-rw-r–r--. 1 root root 692241 Sep 10 2018 /etc/services
-rw-r–r-- 1 root root 142549 Oct 20 23:32 services.gz
[root@localhost test]# zcat services.gz
由于service文件本来就是一个文本文档,所以还可以使用zmore,zless去查看内容
[root@localhost test]# ls
services.gz
[root@localhost test]# gzip -d services.gz
[root@localhost test]# ls
services
我们可以看到,gzip这个工具压缩文件和源文件默认只保留一个,所以还可以
[root@localhost test]# gzip -1 -c services > test.gz
[root@localhost test]# ls
services test.gz
[root@localhost test]# zgrep -n ssh test.gz
44:ssh 22/tcp # The Secure Shell (SSH) Protocol
45:ssh 22/udp # The Secure Shell (SSH) Protocol
你也可以使用zgrep找出指定的关键字在压缩文件的那几行
gzip我们就看完了,接下来我们接着看bzip2

[root@localhost test]# bzip2 -h
-h 帮助
-d 解压
-z 压缩 默认值
-k 保留源文件
-v 查看版本信息
-1 …-9 同gzip相同
bzip2的使用与gzip相同,两种工具的区别就是压缩算法不同,bzip2的压缩比更好一些,bzip的包查看的时候使用的是bzcat,bzmore,bzless,bzgrep同gzip用法相同
[root@localhost test]# gzip -c services > services.gz
[root@localhost test]# bzip2 -k services
[root@localhost test]# ll
总用量 948
-rw-r–r-- 1 root root 692241 10月 21 01:31 services
-rw-r–r-- 1 root root 129788 10月 21 01:31 services.bz2
-rw-r–r-- 1 root root 142549 10月 21 01:32 services.gz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值