欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2022-06-16 16:13:24
为什么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

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

gzip

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

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

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

bzip2

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

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

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

zip

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

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

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

解压缩命令: unzip testDir.zip

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

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

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

三、打包归档

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

打包命令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

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

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

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

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

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

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

四、疑问

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

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

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

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

本文地址:https://blog.csdn.net/qq_26012495/article/details/107334676