![Linux快速入门与实战:基础知识、容器与容器编排、大数据系统运维](https://wfqqreader-1252317822.image.myqcloud.com/cover/769/43806769/b_43806769.jpg)
2.3.5 Linux下的WinRAR——tar
本节将介绍Linux下非常重要的打包和压缩工具tar。虽然从实现上来说,文件的压缩工作并不是由tar完成,而是由tar调用其他的压缩工具来完成的,但对于用户来说,使用tar命令就可以完成文件/目录的打包和压缩。因此,把tar统称为Linux下的打包和压缩工具,它就如同Windows下的WinRAR工具一样,使用频繁且非常重要。
1.示例1:文件/目录打包
本示例使用tar将当前目录下的所有文件和子目录打包成mytar.tar,命令如下所示。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/65_02.jpg?sign=1739287527-vdY8VovwvIXLSQUwK7PN3tUwqkLXTwB8-0-46984d0baae5265f9436f73bbb278360)
上述命令和参数说明如下。
● tar是打包命令。
● cf是选项,其中c表示create,即创建tar包的意思;f用来指定文件,f后面跟的mytar.tar就是tar包文件名。
● mydir是要打包的目录。
● profile*是要打包的文件,* 是通配符,表示所有以profile开头的文件。
● tar命令、选项、参数之间都要用空格隔开。
命令执行后,如果没有任何显示信息,则说明执行成功,使用ls可以查看打包结果,如下所示,可以看到红色的mytar.tar文件。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/65_03.jpg?sign=1739287527-dSUnZ3VlGu5KHpXp0czMsU8HvTHRt3vV-0-4988061f8bf3d7cfc46e9fb67062051f)
2.示例2:查看打包文件
本示例使用tvf选项,查看刚才打包的mytar.tar文件,命令如下。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/66_01.jpg?sign=1739287527-UWG3sO0ww8938qhaM80gycL2sjsqK9LD-0-1c86d2c0cd5fb4dc6e3fbf5e4cc6b567)
上述命令参数说明如下。
● t选项表示列出tar包内容。
● v选项表示列出详细信息。
● f选项表示列出的对象,即mytar.tar文件。
命令执行后,可以看到mytar.tar的内容,即目录mydir下的所有文件和子目录,以及profile开头的文件。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/66_02.jpg?sign=1739287527-h6m9oNi0E26ncdlOpOe0oE9fUm5G12Mp-0-5ee823547fe6bea60bb9656f7d64e970)
3.示例3:压缩打包
本示例使用tar将当前目录下的mydir目录和profile开头的文件打包和压缩成mytar.tar.gz,选项c表示create即创建tar包的意思,z表示使用gzip工具进行压缩,f用来指定文件,后面跟的mytar.tar.gz就是压缩包文件名。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/66_03.jpg?sign=1739287527-T67PB0JWQirX859eZBlyaHh0cFaKmtMM-0-e06b6d04bc4ef2e62cd015c6589628e5)
查询压缩文件大小的命令如下,可以看到压缩后的tar包mytar.tar.gz只有1247字节大小,而不压缩的tar包mytar.tar则有20480字节大小,相差近20倍。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/66_04.jpg?sign=1739287527-8yEOwI07BpGhQnOauv2NIXmVMoMP5jUC-0-0bb70f399f7add4851d74130e44c4109)
如果安装了bzip2压缩工具,那么还可以使用j选项来实现文件的压缩,命令如下:
tar cjf mytar.tar.bz2 mydir/ profile*
使用tvf选项,同样可以查看压缩打包文件,命令如下。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/66_05.jpg?sign=1739287527-lpB4O1WslXu98NCTeyqkhucL2vbTKqN9-0-9b987739fd7ba96374d12c1ac18ec228)
4.示例4:解压缩
本示例将mytar.tar.gz解压缩到/tmp目录下,命令如下,x选项表示解压缩;f用来指定解压缩的对象,即mytar.tar.gz;-C是Change directory的意思,指定解压缩的路径,即/tmp。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/66_06.jpg?sign=1739287527-asxcK44zney1YAOuf2HZyCqMeKlomFUD-0-63f9937dd01a36c8fa6048a4ea0e8f69)
如果只是解压到当前目录,命令如下所示。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/66_07.jpg?sign=1739287527-I6OYE1mvvMWpd5xDg0vp8DrpeTw4Ve5V-0-3d24e4e94f8f686f83168defd1db3ab6)
解压缩和压缩不一样,压缩需要用选项指定压缩工具,解压缩则不需要指定,直接用xf即可。