linux中关于压缩的命令

1.前言


最近在linux下安装东西,发现好多安装都需要通过使用压缩指令来完成,所以觉得是时候来总结一下了。

在windows下,我们常见的压缩格式有两种,zip和rar。

在讲述压缩指令之前,我们先去看两个概念,打包和压缩。

这个很好理解,打包,就是把零散的东西包装起来成一个总文件,压缩呢,就是把一个大文件压成小文件。

这两个概念是必须要清楚的,对于linux来说,后续很多命令存在在这个概念的区别。

首先,我们需要对linux下压缩文件的种类进行下总结,linux下的压缩文件种类太多了,所以,对应的压缩指令有很多。
接着对应指令我们来学习一下:

2.compress


compress已经是非常古老的压缩程序了。现在已经很少看到这种压缩格式的程序了。
一般我们进行操作,使用压缩的时候,使用的是compress指令,使用解压缩是使用uncompress指令。
compress
-r :递归子目录压缩
-v:显示压缩的过程
-c:将结果送到标注输出。
-f :强制覆盖掉目标文件
-d : 对文件执行解压缩而非压缩

这里写图片描述
发现没有,使用compress的时候是使用源文件直接压缩,所以最终来说源文件保存成为了压缩文件。压缩指令我们可以实现解压缩,当然解压缩指令也是可以的。

uncompress
-r :递归子目录压缩
-v:显示压缩的过程
-c:将结果送到标注输出。
事实上uncompress是指向compress的符号连接,因此不论是压缩或解压缩,都可通过compress指令单独完成。
这个时候你会发现解压缩也是吧压缩文件直接解出来,压缩文件没有了,如果你想要保留压缩文件并且解压出来怎么办呢,其实还是有办法实现的,你可以使用-c,解压缩到一个另外的文件流即可。
这里写图片描述
事实上,compress已经很少有人使用了,因为无法解压.gz文件,所以接下来我们来讲述下关于gzip指令

3.gzip


gzip指令使用的非常的广泛。gzip和tar构成了linux中比较流行的压缩文件格式。gzip文本文件的压缩率大约在60%-70%。我们可以使用gzip解开compress,zip和gzip压缩的文件。gzip生成的文件后缀是.gz
gzip
-c:写到标准输出
-d:解压文件
-l:显示文件内容
-r:递归压缩文件
-t:测试,检测文件是否完整。
-v:显示一个压缩文件的压缩比和名字
-num:调整压缩的速度。
对于gzip的使用和上面所讲的compress是类似的。所以,我们使用。
这里写图片描述
当我们想要保存压缩文件解压缩(或压缩):使用-c选项。
这里写图片描述
和compress一样的,压缩以后源文件也会不在的,然后就是取代的是压缩文件,解压缩时候压缩文件也会被解压出来的文件所替代。
当然,也提供了一个关于.gz格式的解压命令,gunzip。这里的gunzip是gzip的硬链接。
-a或–ascii:使用ASCII文字模式。
-c或–stdout或–to-stdout:把解压后的文件输出到标准输出设备。
-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。
-l或–list:列出压缩文件的相关信息。
-n或–no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。
-N或–name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。
-r或–recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
-S或–suffix:更改压缩字尾字符串。
-t或–test:测试压缩文件是否正确无误。
这里写图片描述
zcat
对于zcat这个命令,用于不真正解压缩的文件,就能显示压缩文件当中的内容的场合。
这里写图片描述

我们可以看到直接显示了压缩文件当中的内容。

4.bzip2


这是一个压缩命令,相比如gzip,它有更好的压缩比,其他用法和gzip类似
选项
-c或——stdout:将压缩与解压缩的结果送到标准输出;
-d或——decompress:执行解压缩;
-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-v或——verbose:压缩或解压缩文件时,显示详细的信息; -z或——compress:强制执行压缩;
这里写图片描述
在这里比较不同点的是-k选项,通过-k选项我们终于可以实现保存原有文件了。
这里写图片描述
当然,类似于上面所讲的,这里也有单独的解压缩命令bunzip2,这里的bunzip2是bzip2的软链接。
-f或–force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
-k或——keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
-s或——small:降低程序执行时,内存的使用量;
-v或——verbose:解压缩文件时,显示详细的信息;

有zcat也有bzcat,通过bzcat 类似于zcat,查看压缩文件中的内容。
这里写图片描述

5.tar


接下来的tar命令应该是linux当中很重要的指令。
它的意思是打包,打包,就像上面所说的,就是可以把多个文件或者文件夹,打包成一个文件。打包这种操作在linux下面使用非常广泛,所以我们需要很熟悉。
比如我们经常会看到文件的格式是.tar.gz,它的操作就是先打包,然后进行gzip压缩。
选项:
-A或–catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或–create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或–extract或–get:从备份文件中还原文件;
-t或–list:列出备份文件的内容;
-z或–gzip或–ungzip:通过gzip指令处理备份文件;
-Z或–compress或–uncompress:通过compress指令处理备份文件;
-f<备份文件>或–file=<备份文件>:指定备份文件;
-v或–verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;

这么些选项,是不是觉得头晕脑涨,其实我们只需要熟练掌握操作3个命令:
压 缩:tar -jcvf filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtvf filename.tar.bz2
解压缩:tar -jxvf filename.tar.bz2 -C 欲解压缩的目录

这里的j对应的是bzip2方式压缩,如果把j改为z就是gzip的方式进行压缩。

通过这三个命令,算最实用的操作。
这里写图片描述
这里写图片描述
压缩目录
这里写图片描述
在这里面需要关注几个重要的几个选项:
-p,用来保存档案的权限和属性。
这个选项很重要。尤其是当你想要保留文件属性和权限的时候
–exclude=<范本样式>:排除符合范本样式的文件。

6.zip


zip这种压缩式很熟悉的了,在linux下当然也会有这种压缩,文件经过zip压缩会带有.zip的后缀。
选项:
-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-c:替每个被压缩的文件加上注释;
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-r:递归处理,将指定目录下的所有文件和子目录一并处理
-z:替压缩文件加上注释;
这里写图片描述
当然,zip也有解压缩命令
unzip
选项:
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
-f:更新现有的文件;
-l:显示压缩文件内所包含的文件;
-v:执行时显示详细的信息
-n:解压缩时不要覆盖原有的文件;
-o:不必先询问用户,unzip执行后覆盖原有的文件;
-P<密码>:使用zip的密码选项;
这里写图片描述

7.总结


最近是在安装一些linux下的软件过程中经常使用压缩命令,所以想来总结一下,毕竟这些事日常生活当中常用的东西,如果你想要进行深入的了解,那么你更加需要多加练习。
在我看来,咱们通常使用最多的就是tar相关的操作了,所以,希望你熟练操作。大部分操作都是相通的,练习了一个,后续的操作大同小异。
2017年了,希望学到更多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章