一篇文章搞懂linux压缩打包及命令

   日期:2020-07-15     浏览:102    评论:0    
核心提示:为什么Linux压缩文件会有扩展名?在Linux中,常见压缩文件扩展名:*.tar,*.tar.gz,*.tgz,*.gz,*.gz2,为什么会有这么多的扩展名呢?不是说Linux的扩展名没什么作用吗?这是因为Linux支持的压缩命令非常多,不同的命令使用的压缩算法不同,所以彼此之间无法相互压缩/解压缩。因此,当你要解压缩某个压缩文件时,必须知道用什么算法去解压缩它,那么扩展名就是你判断的唯一标识。也就是说,虽然Linux文件的属性与文件名没有绝对关系,但为了便利,在某些情况下,扩展名还是有必要的。

 

目录

一、为什么Linux压缩文件会有扩展名?

二、压缩

各压缩工具实例

gzip

bzip2

zip

三、打包归档

打包命令tar

四、疑问

为什么zip可以直接压缩并打包,却在Linux中不常使用,而非要去使用麻烦的.tar.gz?

为什么Linux原生的压缩和打包要分开?

一、为什么Linux压缩文件会有扩展名?

在Linux中,常见压缩文件扩展名:*.tar,*.tar.gz,*.tgz,*.gz,*.gz2,为什么会有这么多的扩展名呢?不是说Linux的扩展名没什么作用吗?

这是因为Linux支持的压缩命令非常多,不同的命令使用的压缩算法不同,所以彼此之间无法相互压缩/解压缩。因此,当你要解压缩某个压缩文件时,必须知道用什么算法去解压缩它,那么扩展名就是你判断的唯一标识。也就是说,虽然Linux文件的属性与文件名没有绝对关系,但为了便利,在某些情况下,扩展名还是有必要的。比如同时经过tar打包和gzip压缩的文件,扩展名可以是*.tar.gz,也可以是*.tgz,这都由我们打包的时候自己决定,但是要确保解压缩的人可以识别这个扩展名暗号。

二、压缩

Linux常用压缩工具如下:

工具 文件扩展名 描述 特点

命令

【压缩 / 解压缩】

compress .Z 已经很少在Linux文件中出现,被gzip取代 只能压缩文件,不能压缩文件夹
gzip .gz GNU压缩工具,取代compress,Linux最流行 只能压缩文件,不能压缩文件夹 gzip / gunzip
bzip2 .bz2 gzip之后GNU开发的,压缩更好,但耗时更长 只能压缩文件,不能压缩文件夹 bzip2 / bunzip2
zip .zip Windows上PKZIP工具的Unix实现 即可压缩文件,也可压缩文件夹 zip / unzip

各压缩工具实例

原始文件,压缩前102K

gzip

压缩命令:gzip test.jpeg,压缩后大小变为101K

解压缩命令:gunzip test.jpeg.gz 

bzip2

压缩命令:bzip2 test.jpeg,压缩后大小变为100K,小于gzip

解压缩命令:bunzip2 test.jpeg.bz2 

zip

  • 需指定压缩后文件,压缩后会在保留原始文件基础上生成新的文件;
  • 既支持压缩文件,也支持压缩文件夹

压缩文件命令:zip test.zip test.jpeg

压缩文件夹命令:zip -r testDir.zip testDir

解压缩命令: unzip testDir.zip

三、打包归档

打包归档的意思是:将多个文件文件夹 “打包” 变成一个方便管理的文件,但其并不具有压缩效果,打包后的文件不会变小。

打包命令tar

tar常用参数介绍
参数 描述
-c 新建打包文件
-x 解打包文件
-v 在打包 / 解打包 的过程中,将正在处理的文件名显示(不想显示可缺省)
-f 【不可缺省】-f 后面接被处理的文件名,不使用该参数则无法正确的打包 / 解打包
-z 配合gzip进行压缩 / 解压缩(扩展名通常为:*.tar.gz
-j 配合bzip2进行压缩 / 解压缩(扩展名通常为:*.tar.bz2

由于Linux风格的压缩命令均不支持直接压缩目录,仅可压缩单个文件,所以压缩文件夹需要打包命令的配合。

例如:原始文件夹为testDir,先用tar对其进行打包,然后使用gzip进行压缩,可得到testDir.tar.gz

tar -cvf testDir.tar testDir ===========> testDir.tar

gzip testDir.tar ============> testDir.tar.gz

也可以直接一个命令对其进行打包和压缩,扩展名是.tgz或.tar.gz均可,由自己决定,具体原因可见文章开头

tar -czvf testDir.tgz testDir =========> testDir.tgz

解gzip压缩并解打包:tar -xzvf testDir.tgz =========> testDir

四、疑问

为什么zip可以直接压缩并打包,却在Linux中不常使用,而非要去使用麻烦的.tar.gz?

因为zip不是Linux原生支持的压缩方式,其对Linux的风格保留并不完整,当你对一个已经付好权限的文件使用zip压缩后再解压缩,会发现需要重新chmod才可恢复。

为什么Linux原生的压缩和打包要分开?

因为Linux喜欢一个工具只做好一件事

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服