tar打包和解包文件
访问量:3065

一、简介

tar命令是linux常用的打包(或归档)工具,即利用tar命令,可以把一大堆的文件和目录全部打包成一个文件。也可以在打包文件中改变文件,或者向打包文件中加入新的文件。

当然,tar命令也可以解包。

首先要弄清两个概念:打包(归档)压缩

打包是指将一堆文件或目录变成一个总的文件;

压缩是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩命令只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩。

二、语法

type [参数] 文件

三、常用参数

参数描述
-A
新增归档文件到已经存在的归档中
-B设置区块大小
-c建立新的压缩文件,即打包。
-d记录文件的差别
-r添加文件到已经存在的归档中
-x从压缩文件中提取文件,即解包。
-f指定打包为文件
-t显示归档文件的内容
-z支持gzip解压文件,即打包后,进行压缩
-j支持bzip2解压文件,即打包后,进行压缩
-v显示操作过程
-k保留原有文件不覆盖

三、案例

1、打包文件且不压缩

比如把access.log 和 error.log文件,打包成 dq.tar,执行命令如下:

tar -cvf dq.tar access.log error.log

-f参数后面,跟的是归档的文件名。

习惯上,大家都用 .tar 来作为辨识。 如果加-z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加-j选项,则以.tar.bz2来作为tar包名。

上述,打包文件如下:

2、打包文件且压缩

比如把access.log 和 error.log文件,打包成 dq.tar.gz,同时使用gzip进行压缩,执行命令如下:

tar -zcvf dq.tar.gz access.log error.log

可以看出来,打包并压缩后的文件,比不压缩小了不少。

如果要使用bzip2,压缩,则需要执行如下命令:

tar -jcvf dq.tar.bz2 access.log error.log

3、查看打包文件中有哪些文件

针对没有压缩过的文件,如dq.tar,直接执行如下命令即可:

tar -tvf dq.tar

如果归档被gzip压缩过,如dq.tar.gz,需要带上参数-z,如下:

tar -ztvf dq.tar.gz

如下:

如果归档被bzip2压缩过,需要带上参数-j,如下:

tar -jtvf dq.tar

4、将tar文件解包

如果tar文件没有被压缩,如dq.tar,直接执行如下命令:

tar -xvf dq.tar

如果归档被gzip压缩过,如dq.tar.gz,需要带上参数-z,如下:

tar -zxvf dq.tar.gz