linux既能归档也能压缩的命令,Linux压缩及归档

Linux压缩及归档详解

我们Linux操作系统中的压缩文件的格式主要有gz、bz2、xz以及Z四种,压缩的过程是我

们的操作系统利用压缩算法来进行实现的,压缩算法不同,压缩比就会不同,压缩文件的过程

是先利用压缩算法去扫描文件,然后利用压缩算法去完成压缩,压缩比指的是压缩前的文件大

小减去压缩后的文件大小的文件大小的差值比上压缩前的文件大小,故压缩比越大,说明压缩

性能就越好,我们早期的Unix操作系统上有一种压缩工具叫做compress,compress本身的意思

就是压缩的意思,compress命令压缩后的文件的文件名的后缀为.Z,而与之对应的解压缩命令

就是uncompress,这个命令的压缩比很小,是一个很古老的压缩工具。

目前我们的Linux系统上流行的压缩工具主要有以下几种,按出现时间的早晚来进行排序:

1,gz格式的压缩工具

压缩工具为gzip,压缩后的文件名的后缀为.gz

使用格式:gzip filename1 filename2 ...,其后可以指定多个文件,

gzip会把每一个文件单独压缩,该工具在压缩之后会删除原文件

7982a54c8bbe091410c9ad6ec091b17e.png

该命令所对应的解压缩命令为gunzip

使用格式:gunzip filename1 filename2 ...

解压缩之后也会删除原文件(即压缩后的文件)

a2ebefb3b79d288422cd1524f977aee3.png

但是我们的gzip命令有一个-d选项就是用来解压缩的,

使用格式:gzip -d filename1 filename2 ...

fba391644dc19cfb882673fd83d37f5b.png

还可以使用- #(1-9)选项来指定压缩比,默认的压缩比为6,

因为压缩比是和压缩速度成反比的

78ab67054c8e02d55c86ed744d1c6f32.png

我们还可以使用zcat命令在不解压的情况下去查看gz格式的压缩文件的内容,

使用格式:zcat filename.gz

723268ce1f645ea490cb8b8104f67b73.png

该工具只能用来压缩文件而不能用来压缩目录

3721f4b9c8b6514416aabc65ec0e4014.png

2,bz2格式的压缩工具

压缩工具为bzip2(2为bzip工具的版本号),压缩后的文件名的后缀为.bz2,该工具

比gzip工具有着更大的压缩比,对小文件来讲优势不是很明显,对大文件来讲优势明显,但是

和gzip工具的使用格式是一样的:

使用格式:bzip2 filename1 filename2 ...,同样该工具也只能用来压缩文件,而

不可以压缩目录,压缩后也会删除原文件:

8f41848858f76c3a1e4b21d67416dbe6.png

解压缩的工具为bunzip2,使用格式为bunzip2 filename1 filename2 ...,解压缩后

也会删除原文件(即即压缩文件):

9ee7ed9eeb7f0762cb3cb7257d883fa4.png

同样该工具也支持-d选项进行解压缩,且支持- #选项来指定压缩比:

b4efe9c60c40bdc5a0045364787dc3be.png

常用-k(--keep)选项:压缩及解压缩的时候可以保留原文件,而不将原文件删除:

20af3432ffb803d8c39c159cd92df1c3.png

我们可以使用bzcat命令,在不解压文件的情况下,来查看bz格式的压缩文件的内容:

b51e2f61b19a76190f5d69623b397949.png

3,xz格式的压缩工具

温故->sed命令具有查找并替换的功能,但是sed命令默认是不会修改原文件的内容

的,但是sed命令的-i选项可以修改原文件的内容:

6a245ddabf19365be55a7d498c6a4796.png

压缩工具为xz,压缩后的文件名的后缀为.xz

使用格式:xz filename1 filename2 ...,压缩程度比bzip2更大,是三种压缩工具

中压缩比最大的工具,压缩后同样会删除原文件:

9307519574c998a96c083d70fa25cdfc.png

解压缩的工具为unxz,使用格式:unxz filename1 filename2 ...,解压缩后也会

删除原文件(即压缩文件):

323cca51a3c67975f99968cbec8d0040.png

xz命令也支持-d选项进行解压缩:

f5b4e1afb2b9d37e6fd15647580ea468.png

也支持-#选项指定压缩比,默认压缩比为6:

8ba3047a68588e127c28bbfd03cebfeb.png

也支持-k(--keep)选项,在压缩及解压缩的时候保留原文件:

95a24ff50c1157f3ef549ad94f0cc319.png

xzcat命令可以在不解压文件的情况下,查看xz格式压缩文件的内容:

c0df4f33bd4552178fd2beedebef96dd.png

xz命令也是只能压缩文件,而不可以压缩目录:

0a9612c3da3c2a71a0cf5c7c9a0c8b0e.png

xzdec(xzdecompress)是一种也可以解压缩xz格式的压缩文件中的内容的压缩工具:

746189b8faed88849d34d35bcba40a53.png

xzdec命令是一种将压缩文件中的内容解压输出的一种解压工具,而不是解压缩压缩

文件的工具

由以上可知我们的压缩工具只能压缩文件而不能压缩目录,如果指向目录的话我们的压缩

命令会把目录下的文件一个一个的单独压缩,这些压缩工具在压缩的过程中,默认会删除原文

件,而只保留压缩后的文件,我们在上面介绍了三种目前流行的压缩工具,接下来我们再介绍

一种既可以归档又可以压缩的工具,归档的意思我们可以直接理解为将所有要压缩的文件进行

打包,将多个文件压缩到一起的动作叫做归档(archive),归档本身并不意味着压缩,但是我

们下来要介绍的这种工具本身就是一种既归档又压缩的工具:

·zip命令

zip命令可以压缩目录,而且压缩后不删除原文件:

使用格式:zip 压缩后的文件名(由用户自己指定).zip filename1 filename2 ...

6614a8eed849029c13ff72f9133d45ea.png

上图中的deflated、stored分别指的是压缩文件时的压缩算法

解归档压缩的命令:

·unzip命令

使用格式:unzip 压缩文件名.zip

85edabc88cad5b15f3c5941dec05320a.png

解压缩时也不会删除原文件下面来介绍一种我们在今后非常常用的一种命令,tar命令:

tar命令是一种只归档不压缩的工具

使用格式:tar [options] filename.tar filename1 filename2 ...

-c选项:创建归档文件

-x选项:展开归档

-t选项:不展开归档的情况下,查看归档了哪些文件

--xattrs:表示在归档的同时保留文件的扩展属性信息,因为我们默认在进行文件归

档的时候不会保留文件的扩展属性信息

-f选项:-f filename.tar->归档后的文件名是由用户自定义的,这个文件名必须紧

跟在-f选项后面

创建归档文件:归档的时候会保留原文件

2826f483b8ee72304996daeb27c60bca.png

在不展开归档文件的情况下查看归档了那些文件:

434f4445b1f99290d9a83cb0a359f71e.png

展开归档:展开归档的时候也会保留原文件:

f1b685b745b747bec884be2eca22eeef.png

tar命令允许我们将归档和压缩的功能集成起来,用一条命令就可以完成归档及压缩:

-z选项表示让我们的tar命令来调用gzip工具来完成压缩,

使用格式:

tar -zcf filename.tar.gz(文件名后缀多了一个可以标识我们使用的是哪种压缩工

具的后缀) filename1 filename2 ...

归档及压缩也不会删除原文件:

e2edad99fe38aa688fa3d41553eabd0f.png

解压缩再展开归档:也不会删除原文件

tar -zxf filename.tar.gz

605a7aefb84c4ad852598a9bd9d004eb.png

-z选项可以省略因为我们的tar命令,可以根据压缩归档文件的后缀名来判断我们使用

了哪种压缩工具,从而就使用哪种工具来解压缩:

58304e5c1f38e402f521a6266d6be4d2.png

不展开归档直接查看归档压缩包的内容:

tar -ztf filename.tar.gz,同理-z选项也可以省略

86dbd663d3a94eece00272f28de66d07.png

-j选项表示让我们的tar命令去调用我们的bzip2工具来完成压缩:

使用格式:

归档及压缩文件:不删除原文件

tar -jcf filename.tar.bz2 filename1 filename2 ...

7aafd4f5a533460df8c7eb3d453a9e80.png

解归档解压缩文件:不删除原文件

tar -jxf filename.tar.bz2->同理-j选项可以省略

2d63c649f05a926ec1e45b4294e96071.png

查看压缩包中的内容

tar -jtf filename.tar.bz2->同理-j选项可以省略

09b2ed5c328d7929fb0653406c69b88c.png

-J选项可以使得我们的tar命令来调用我们的xz压缩工具来完成文件的压缩:

使用格式:

压缩及归档文件:不删除原文件

tar -Jcf filename.tar.xz filename1 filename2 ...

289fb1affb732a104ad1cd6fb719b4ac.png

解归档解压缩文件:不删除原文件

tar -Jxf filename.tar.xz->同理-J选项可以省略

21bb108250e0a8738baca946b6cc95e3.png

查看归档压缩包的内容:

tar -Jtf filename.tar.xz->同理-J选项可以省略

4cde09fa5680fc99241c97bf8b1b18fd.png

我们还有一种归档命令叫做cpio,cpio也是一种归档工具,比tar古老,但是有些场合适

用于使用cpio不适用于使用tar。

我们Linux系统内置了一个可以使得我们的shell脚本和用户进行交互的命令,这个命令

叫做read命令:

read命令后面可以接多个参数,参数之间用空格隔开,参数和用户输入的参数一一对应

-p选项->-p "给出用户的提示"

-t选项->指定等待用户输入数据的时间

·练习:写一个脚本,要求

脚本可以和用户进行交互,使得用户输入两个整数,求这两个整数的和,不过脚本有等

待时间,超出等待时间5S脚本自动退出

脚本内容:

52d099ddeb7b922e4fc2ac17d50731cb.png

脚本执行结果:

028b1de6f7c1c8d892040d1c6816ff44.png

温故:echo -n 表示不换行输出

·练习:写一个脚本,要求

脚本可以使用户从键盘输入3个文件,我们的脚本可以使得这几个文件被归档压缩成一

个文件

脚本内容:

e8db77f1e75ebb70337d7e4caaed67d4.png

脚本执行结果:

bc5264564ca9a45b90dde1d438f0d7a0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值