再说打包之前先来看看在不同的操作系统中,常见的打包压缩方式是不同的:

        Windows-----------------rar;

        Mac-----------------------zip;

tar.gz。

一、打包/解包

tar是Linux中常见的一个备份工具,这个命令的功能是:将一系列文件打包到一个大文件中,也可以将打包好的大文件进行恢复,恢复成一系列文件

打包命令格式:tar -cvf  打包文件.tar   被打包的文件

tar -cvf  打包文件.tar  打包文件的路径      //在Linux中打包文件基本以".tar"结尾,命令就是将指定路 
                                           径里面的文件打包成一个自己命名以".tar"结尾的打包文件

tar命令选项说明:

选项

含义

c

生成档案文件,创建打包文件

x

解开档案文件

v

列出归档解档的详细过程

f

指定档案文件名称,f后面一定是.tar文件,所以必须放在选项最后

值得注意的是,这几个选项一般情况下组合使用,只要f选项放在最后就可以。包括解包的命令。

解包命令格式:tar -cvf  打包文件.tar 

具体以一个例子的形式来演练:

第一步:删除桌面文件夹下的所有内容,然年建立三个空白文件,分别是01.py、02.py、03.py
                rm -r *      按回车              //删除桌面文件夹下所有内容
                mkdir 01.py  按回车
                mkdir 02.py  按回车
                mkdir 03.py  按回车              //三个空白文件的创建

第二步:将创建好的三个文件打包成一个"py.tar"的包
                tar -cvf py.tar 01.py 02.py 03.py //将三个文件名用空格隔开表示一共打包三个文件

第三步:新建一个目录tar,将新建好的py.tar移动到新建的目录里。
                mkdir tar                        //新建目录
            
                mv py.tar tar                    //移动至目录

第四步:解包py.tar
 
                tar -xvf py.tar                  //选项唯一不同的是cvf变成了xvf

 可以看一下,打包文件的大小:

linux中打包go语言 打包 linux_linux中打包go语言

 二、压缩和解压缩

1.gzip命令

tar命令可以和gzip命令结合使用,从而实现文件的压缩和解压缩。具体过程是:tar负责将文件打包,gzip命令负责将打包文件变成压缩文件,扩展名一般是 "xxx.tar.gz"。压缩图解过程如下:

文件------------->(cvf)打包文件------------->(zcvf)压缩文件

关于扩展名的一些惯性: xxx.tar.gz表示使用tar命令打包了一个文件,然后使用的gzip命令进行的压缩,之所以这么命名,是因为后面会介绍另外一种压缩命令,用以区分。

命令格式:

tar -zcvf 打包文件.tar.gz 被压缩的文件          //压缩文件命令
tar -zxvf 打包文件.tar.gz                     //解压缩文件命令
                                             //tar命令中有一个选项-z可以调用gzip,可以实现两个 
                                               命令的结合使用,提高压缩解压缩效率
tar -zxvf 打包文件.tar.gz -C 目标路径         //可以添加一个-C选项来指定解压后的文件保存路径,要 
                                               注意的是这个目标路径必须提前存在

再来看一下解压缩图解过程:

压缩文件----------->(z)解压缩成打包文件------------>(zxvf)解包

 2.bzip2(two)命令

另外一种压缩解压缩文件命令,gzip中使用的是tar命令的-z选项,而这个使用的是tar命令的-j选项。这是唯一的区别。命令格式也是大同小异,将所有出现z的地方换成j,压缩文件的命名格式也换一下:"xxx.tar.bz2"

结尾看一下打包和压缩文件的占用内对比:

linux中打包go语言 打包 linux_压缩文件_02