Linux系统中,最常用的打包命令就是tar了,不仅如此,tar命令还可以解打包解压缩,十分方便。如果单纯想压缩文件,就需要我们的gzip命令了。

使用tar打包归档的包叫做tar包,以.tar结尾
使用gzip压缩的文件,以.gz结尾
日常使用中,特别是对目录及里面的文件,一般先进行tar打包再进行gzip压缩,此时的文件以.tar.gz结尾

tar命令的打包操作

基本格式:

tar [参数] [打包后的目录或文件(以.tar结尾)] [打包前的目录或源文件]
例:tar -cvf demo.tar demo

各参数及含义如下表所示:

参数含义
-c做打包操作,可将多个文件或目录进行打包
-v显示打包过程
-f后接包名(必须要写)指明要打包的目录或源文件的名称

注意一点,在tar命令中,参数前的“-”可以省略,即“-cvf”与“cvf”的功能是一样的。

举个栗子🌰:
对文件或者目录进行打包操作

文件:tar -cvf demo.tar demo
目录:tar -cvf test.tar test0/

执行结果如下
对文件进行打包操作:
在这里插入图片描述
对目录进行打包操作:
在这里插入图片描述

tar命令的解打包操作

基本格式:

tar [参数] [包名称]
例:tar -xvf abc.tar

各参数及含义如下表所示:

参数含义
-x做解打包操作
-v显示解打包过程
-f后接包名(必须要写)指明要解打包的tar包的包名
-t查看tar包中有哪些文件或目录,不做解打包操作
-C(大写)指定解打包的具体位置

注意一点,“-C”参数可以不写,此时默认解打包在当前目录下

举个栗子🌰:
1⃣️将文件解打包到当前目录

tar -xvf ab.tar

结果如下图所示:
在这里插入图片描述
2⃣️将文件解打包到指定目录

tar -xvf abc.tar -C test0/

结果如下图所示:
在这里插入图片描述

gzip命令的压缩(解压缩)操作

基本格式:

gzip [参数(可省略)] [源文件]
例:gzip demo

常用参数及含义如下表所示:

参数含义
-c保留源文件的压缩,需要配合“>”
-d对压缩文件进行解压缩
-r递归压缩指定目录下以及子目录下的所有文件
-v对于每个压缩和解压缩的文件,显示相应的文件名和压缩比
-numbernumber表示压缩等级,number为1 表示压缩等级最低,压缩比最差;number为9 压缩比最高。默认压缩比是 number为6

注意:gzip命令比较灵活,其后可以不加参数直接加源文件,此时直接对源文件进行压缩,但会自动删除掉源文件

举个栗子🌰:
1⃣️gzip不接参数直接压缩源文件

gzip demo

演示结果全程如下所示:
在这里插入图片描述
2⃣️gzip压缩并保留源文件

gzip -c abc > abc.gz

演示结果如下图所示:
在这里插入图片描述
3⃣️gzip压缩目录

gzip -r test/

演示结果如下图所示:
在这里插入图片描述
观察栗子可以发现, 用gzip压缩目录的话,gzip只会将目录中的文件进行压缩,并不会对目录进行压缩。
如果想对目录进行压缩的话,必须先用tar命令对其打包,然后对该打包文件进行gzip压缩

4⃣️gzip解压缩

gzip -d demo.gz

演示结果如下图所示:
在这里插入图片描述

读到这,不少读者可能会觉得Linux下的打包压缩太不灵活了吧,特别针对目录的操作,岂不是要一步步的输入命令。
其实不然,tar命令有一步进行打包压缩的操作,也有一步进行解压缩解打包的操作。笔者这么写是方便大家一步步的理解整个打包压缩的过程。

tar命令的一体化打包压缩(解压缩解打包)操作

基本格式:

tar [参数] [压缩包名称] [源文件或目录]
# “源文件或目录”只在打包压缩时用到,“解压缩解打包不会用”
例:tar -zcvf demo.tar.gz demo # 将文件demo打包压缩为demo.tar.gz
例:tar -zxvf demo.tar.gz      # 将文件demo.tar.gz解压缩解打包为demo

常用参数及含义如下表所示:

参数含义
-z一步压缩和解压缩 “.tar.gz” 格式
-j一步压缩和解压缩 ".tar.bz2"格式

举个栗子🌰:
1⃣️将文件一步压缩为.tar.gz或.tar.bz2格式:

tar -zcvf demo.tar.gz demo
tar -jcvf abc.tar.bz2 abc
# 注意参数z与j及压缩包的后缀名

演示结果如下图所示:
在这里插入图片描述
该例子不局限于对文件,还可以对目录进行压缩,并且压缩完源文件保留

2⃣️将文件一步解打包解压缩:

# 先把之前的demo,abc两文件删除掉
tar -zxvf demo.tar.gz
tar -jxvf abc.tar.bz2

演示结果如下图所示:
在这里插入图片描述
如上所示,解压缩解打包后源文件依旧保留

小结

一般日常中比较常用的参数组合有两种:
打包用“-cvf”
压缩用“-xvf”
如果考虑一步打包压缩或者解压缩解打包,按需添加“-z”,“-j”参数

参考资料

[1] CSDN博客:Linux文件的压缩和解压命令tar
[2] CSDN博客:linux .gz文件 压缩与解压缩命令
[3] C语言中文网:Linux tar打包命令详解
[4] C语言中文网:Linux gzip命令:压缩文件或目录

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐