本节将介绍Linux下非常重要的打包和压缩工具tar。虽然从实现上来说,文件的压缩工作并不是由tar完成,而是由tar调用其他的压缩工具来完成的,但对于用户来说,使用tar命令就可以完成文件/目录的打包和压缩。因此,把tar统称为Linux下的打包和压缩工具,它就如同Windows下的WinRAR工具一样,使用频繁且非常重要。
本示例使用tar将当前目录下的所有文件和子目录打包成mytar.tar,命令如下所示。
上述命令和参数说明如下。
命令执行后,如果没有任何显示信息,则说明执行成功,使用ls可以查看打包结果,如下所示,可以看到红色的mytar.tar文件。
本示例使用tvf选项,查看刚才打包的mytar.tar文件,命令如下。
上述命令参数说明如下。
命令执行后,可以看到mytar.tar的内容,即目录mydir下的所有文件和子目录,以及profile开头的文件。
本示例使用tar将当前目录下的mydir目录和profile开头的文件打包和压缩成mytar.tar.gz,选项c表示create即创建tar包的意思,z表示使用gzip工具进行压缩,f用来指定文件,后面跟的mytar.tar.gz就是压缩包文件名。
查询压缩文件大小的命令如下,可以看到压缩后的tar包mytar.tar.gz只有1247字节大小,而不压缩的tar包mytar.tar则有20480字节大小,相差近20倍。
如果安装了bzip2压缩工具,那么还可以使用j选项来实现文件的压缩,命令如下:
tar cjf mytar.tar.bz2 mydir/ profile*
使用tvf选项,同样可以查看压缩打包文件,命令如下。
本示例将mytar.tar.gz解压缩到/tmp目录下,命令如下,x选项表示解压缩;f用来指定解压缩的对象,即mytar.tar.gz;-C是Change directory的意思,指定解压缩的路径,即/tmp。
如果只是解压到当前目录,命令如下所示。
解压缩和压缩不一样,压缩需要用选项指定压缩工具,解压缩则不需要指定,直接用xf即可。