您的位置:首页 > 运维架构 > Linux

linux中关于压缩的命令

2017-01-01 10:55 344 查看

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年了,希望学到更多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 压缩