tar是Linux中最流行的压缩、解压缩、打包、解包工具。麻雀虽小,五脏俱全,功能强大。

之前介绍的压缩命令gzipbzip2只能针对一个文件进行压缩。当你想要压缩一大堆文件时,你得先将这一堆文件打成一个包。linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的(未压缩)。生成tar包后,就可以用其它的程序来进行压缩。

格式

1
$ tar [options]... [pathname...]

常用选项

-c : 建立新的包文件。

-r : 向包的末尾添加文件。

-t : 列出包中包含的文件。

-u : 如果文件比包中的文件新,那么更新包。

-x : 解包。

-f : 指定打包后的包名。

-j : 使用bzip2来压缩/解压包。

-z : 使用gzip来压缩/解压包。

-v : 压缩/解压缩过程可视化

示例

多个文件打包为一个文件:

1
2
3
$ tar -cvf pic.tar pic.png pic1.png pic2.png

$ tar -cvf pic.tar *.png

打包文件

注意: 选项-f不能缺少,而且其后必须紧跟包文件名。如果不指定-f选项,那么压缩结果将输出到标准输出设备。包后缀名最好为.tar,国际惯例。

查看包内内容:

选项-t可以查看包内内容。

1
$ tar -tf pic.tar

查看包内容

向包中追加一个文件:

选项-r可以向包中追加文件。

1
$ tar -rf pic.tar pic3.png

追加文件

解包:

将包中的全部文件解压:

1
$ tar -xvf pic.tar

解包

只解压包中的部分文件:

1
$ tar -xvf pic.tar pic1.png

解包

打包文件并使用gzip进行压缩

1
$ tar -zcvf pic.tar.gz *.png

使用gzip压缩包

*注意:*按照国际惯例,包后缀名为.tar.gz

打包文件并使用bzip2进行压缩

1
$ tar -jcvf pic.tar.bz2 *.png

使用bzip2压缩包

*注意:*按照国际惯例,包后缀名为.tar.bz2

将使用gzip压缩的包解压

1
$ tar -zxvf pic.tar.gz

解包gzip

将使用bzip2压缩的包解压

1
$ tar -jxvf pic.tar.bz2

解包bz2