Linux压缩及归档
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux压缩及归档相关的知识,希望对你有一定的参考价值。
Linux压缩及归档详解
我们Linux操作系统中的压缩文件的格式主要有gz、bz2、xz以及Z四种,压缩的过程是我
们的操作系统利用压缩算法来进行实现的,压缩算法不同,压缩比就会不同,压缩文件的过程
是先利用压缩算法去扫描文件,然后利用压缩算法去完成压缩,压缩比指的是压缩前的文件大
小减去压缩后的文件大小的文件大小的差值比上压缩前的文件大小,故压缩比越大,说明压缩
性能就越好,我们早期的Unix操作系统上有一种压缩工具叫做compress,compress本身的意思
就是压缩的意思,compress命令压缩后的文件的文件名的后缀为.Z,而与之对应的解压缩命令
就是uncompress,这个命令的压缩比很小,是一个很古老的压缩工具。
目前我们的Linux系统上流行的压缩工具主要有以下几种,按出现时间的早晚来进行排序:
1,gz格式的压缩工具
压缩工具为gzip,压缩后的文件名的后缀为.gz
使用格式:gzip filename1 filename2 ...,其后可以指定多个文件,
gzip会把每一个文件单独压缩,该工具在压缩之后会删除原文件
该命令所对应的解压缩命令为gunzip
使用格式:gunzip filename1 filename2 ...
解压缩之后也会删除原文件(即压缩后的文件)
但是我们的gzip命令有一个-d选项就是用来解压缩的,
使用格式:gzip -d filename1 filename2 ...
还可以使用- #(1-9)选项来指定压缩比,默认的压缩比为6,
因为压缩比是和压缩速度成反比的
我们还可以使用zcat命令在不解压的情况下去查看gz格式的压缩文件的内容,
使用格式:zcat filename.gz
该工具只能用来压缩文件而不能用来压缩目录
2,bz2格式的压缩工具
压缩工具为bzip2(2为bzip工具的版本号),压缩后的文件名的后缀为.bz2,该工具
比gzip工具有着更大的压缩比,对小文件来讲优势不是很明显,对大文件来讲优势明显,但是
和gzip工具的使用格式是一样的:
使用格式:bzip2 filename1 filename2 ...,同样该工具也只能用来压缩文件,而
不可以压缩目录,压缩后也会删除原文件:
解压缩的工具为bunzip2,使用格式为bunzip2 filename1 filename2 ...,解压缩后
也会删除原文件(即即压缩文件):
同样该工具也支持-d选项进行解压缩,且支持- #选项来指定压缩比:
常用-k(--keep)选项:压缩及解压缩的时候可以保留原文件,而不将原文件删除:
我们可以使用bzcat命令,在不解压文件的情况下,来查看bz格式的压缩文件的内容:
3,xz格式的压缩工具
温故->sed命令具有查找并替换的功能,但是sed命令默认是不会修改原文件的内容
的,但是sed命令的-i选项可以修改原文件的内容:
压缩工具为xz,压缩后的文件名的后缀为.xz
使用格式:xz filename1 filename2 ...,压缩程度比bzip2更大,是三种压缩工具
中压缩比最大的工具,压缩后同样会删除原文件:
解压缩的工具为unxz,使用格式:unxz filename1 filename2 ...,解压缩后也会
删除原文件(即压缩文件):
xz命令也支持-d选项进行解压缩:
也支持-#选项指定压缩比,默认压缩比为6:
也支持-k(--keep)选项,在压缩及解压缩的时候保留原文件:
xzcat命令可以在不解压文件的情况下,查看xz格式压缩文件的内容:
xz命令也是只能压缩文件,而不可以压缩目录:
xzdec(xzdecompress)是一种也可以解压缩xz格式的压缩文件中的内容的压缩工具:
xzdec命令是一种将压缩文件中的内容解压输出的一种解压工具,而不是解压缩压缩
文件的工具
由以上可知我们的压缩工具只能压缩文件而不能压缩目录,如果指向目录的话我们的压缩
命令会把目录下的文件一个一个的单独压缩,这些压缩工具在压缩的过程中,默认会删除原文
件,而只保留压缩后的文件,我们在上面介绍了三种目前流行的压缩工具,接下来我们再介绍
一种既可以归档又可以压缩的工具,归档的意思我们可以直接理解为将所有要压缩的文件进行
打包,将多个文件压缩到一起的动作叫做归档(archive),归档本身并不意味着压缩,但是我
们下来要介绍的这种工具本身就是一种既归档又压缩的工具:
·zip命令
zip命令可以压缩目录,而且压缩后不删除原文件:
使用格式:zip 压缩后的文件名(由用户自己指定).zip filename1 filename2 ...
上图中的deflated、stored分别指的是压缩文件时的压缩算法
解归档压缩的命令:
·unzip命令
使用格式:unzip 压缩文件名.zip
解压缩时也不会删除原文件
下面来介绍一种我们在今后非常常用的一种命令,tar命令:
tar命令是一种只归档不压缩的工具
使用格式:tar [options] filename.tar filename1 filename2 ...
-c选项:创建归档文件
-x选项:展开归档
-t选项:不展开归档的情况下,查看归档了哪些文件
--xattrs:表示在归档的同时保留文件的扩展属性信息,因为我们默认在进行文件归
档的时候不会保留文件的扩展属性信息
-f选项:-f filename.tar->归档后的文件名是由用户自定义的,这个文件名必须紧
跟在-f选项后面
创建归档文件:归档的时候会保留原文件
在不展开归档文件的情况下查看归档了那些文件:
展开归档:展开归档的时候也会保留原文件:
tar命令允许我们将归档和压缩的功能集成起来,用一条命令就可以完成归档及压缩:
-z选项表示让我们的tar命令来调用gzip工具来完成压缩,
使用格式:
tar -zcf filename.tar.gz(文件名后缀多了一个可以标识我们使用的是哪种压缩工
具的后缀) filename1 filename2 ...
归档及压缩也不会删除原文件:
解压缩再展开归档:也不会删除原文件
tar -zxf filename.tar.gz
-z选项可以省略因为我们的tar命令,可以根据压缩归档文件的后缀名来判断我们使用
了哪种压缩工具,从而就使用哪种工具来解压缩:
不展开归档直接查看归档压缩包的内容:
tar -ztf filename.tar.gz,同理-z选项也可以省略
-j选项表示让我们的tar命令去调用我们的bzip2工具来完成压缩:
使用格式:
归档及压缩文件:不删除原文件
tar -jcf filename.tar.bz2 filename1 filename2 ...
解归档解压缩文件:不删除原文件
tar -jxf filename.tar.bz2->同理-j选项可以省略
查看压缩包中的内容
tar -jtf filename.tar.bz2->同理-j选项可以省略
-J选项可以使得我们的tar命令来调用我们的xz压缩工具来完成文件的压缩:
使用格式:
压缩及归档文件:不删除原文件
tar -Jcf filename.tar.xz filename1 filename2 ...
解归档解压缩文件:不删除原文件
tar -Jxf filename.tar.xz->同理-J选项可以省略
查看归档压缩包的内容:
tar -Jtf filename.tar.xz->同理-J选项可以省略
我们还有一种归档命令叫做cpio,cpio也是一种归档工具,比tar古老,但是有些场合适
用于使用cpio不适用于使用tar。
我们Linux系统内置了一个可以使得我们的shell脚本和用户进行交互的命令,这个命令
叫做read命令:
read命令后面可以接多个参数,参数之间用空格隔开,参数和用户输入的参数一一对应
-p选项->-p "给出用户的提示"
-t选项->指定等待用户输入数据的时间
·练习:写一个脚本,要求
脚本可以和用户进行交互,使得用户输入两个整数,求这两个整数的和,不过脚本有等
待时间,超出等待时间5S脚本自动退出
脚本内容:
脚本执行结果:
温故:echo -n 表示不换行输出
·练习:写一个脚本,要求
脚本可以使用户从键盘输入3个文件,我们的脚本可以使得这几个文件被归档压缩成一
个文件
脚本内容:
脚本执行结果:
本文出自 “菜鸟的技术文档” 博客,请务必保留此出处http://zhubo.blog.51cto.com/11395641/1860122
以上是关于Linux压缩及归档的主要内容,如果未能解决你的问题,请参考以下文章