转自:http://www.letuknowit.com/topics/20120405/how-to-view-the-contents-of-the-tar-package.html/
在《Linux中的打包与压缩指令:tar》中介绍了tar指令如何生成打包文件(.tar文件)以及打包并压缩的文件(.tar.gz和.tar.bz2文件),姑且将这些文件通称为tar压缩包文件,本文就介绍如何查看tar压缩包中的内容。本文将以《Linux中的打包与压缩指令:tar》中生成的几个tar压缩包文件为例。
CodingAnts@ubuntu:/tmp/tarcom$ ls -Al total 24 -rw-rw-r-- 1 CodingAnts CodingAnts 10240 2012-04-02 22:52 src.tar -rw-rw-r-- 1 CodingAnts CodingAnts 220 2012-04-02 22:52 src.tar.bz2 -rw-rw-r-- 1 CodingAnts CodingAnts 188 2012-04-02 22:52 src.tar.gz drwxrwxr-x 2 CodingAnts CodingAnts 4096 2012-04-02 21:51 src
其中src.tar文件为打包后的文件(未压缩),src.tar.gz和src.tar.bz2为打包并压缩后的文件,分别采用的gzip和bzip2两种格式的压缩算法。
查看tar压缩包的内容,需要使用tar指令的-t选项,使用该选项后,会列出压缩包中的内容,请看示例:
CodingAnts@ubuntu:/tmp/tarcom$ tar tf src.tar src/file1 src/file2 CodingAnts@ubuntu:/tmp/tarcom$ tar tvf src.tar -rw-rw-r-- CodingAnts/CodingAnts 44 2012-04-02 21:49 src/file1 -rw-rw-r-- CodingAnts/CodingAnts 44 2012-04-02 21:49 src/file2
通过-f选项指定需要查看的tar压缩包文件(f选项后面必须立即跟上文件名,因此f选项都是在所有选项的最后面),t选项则会列出tar压缩包中的文件,如果再配合-v选项,则会显示文件的详细的属性信息。
对于经过压缩后的打包文件,查看内容的时候可以直接使用tar tvf filename查看,也可以分别指定具体的压缩格式,例如:
CodingAnts@ubuntu:/tmp/tarcom$ tar jtvf src.tar.bz2 -rw-rw-r-- CodingAnts/CodingAnts 44 2012-04-02 21:49 src/file1 -rw-rw-r-- CodingAnts/CodingAnts 44 2012-04-02 21:49 src/file2 CodingAnts@ubuntu:/tmp/tarcom$ tar ztvf src.tar.gz -rw-rw-r-- CodingAnts/CodingAnts 44 2012-04-02 21:49 src/file1 -rw-rw-r-- CodingAnts/CodingAnts 44 2012-04-02 21:49 src/file2
在使用-j和-z选项的时候,一定要和查看的文件类型一致,否则会提示出错,例如我们以-j选项查看src.tar.gz,则会有如下错误信息:
CodingAnts@ubuntu:/tmp/tarcom$ tar jtvf src.tar.gz bzip2: (stdin) is not a bzip2 file. tar: Child returned status 2 tar: Error is not recoverable: exiting now
为了保险起见,在查看tar压缩包内容的时候,直接使用-t选项即可,不用指定具体的压缩格式!
以上测试基于Ubuntu 11.10,如果你的版本中的tar指令不支持以上测试结果,则在查看不同类型的tar压缩包文件的时候,需要指定具体的压缩格式。