如何查看通过tar压缩包中的内容

本文介绍如何使用tar命令查看Linux中tar压缩包的内容,并提供具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自: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压缩包文件的时候,需要指定具体的压缩格式。

<think>我们正在讨论如何使用tar命令查看压缩包内容。根据引用[1]和引用[3],我们可以使用以下命令:-查看标准tar包的内容:`tar-tvfarchive.tar`-查看gzip压缩的tar包(.tar.gz或.tgz):`tar-tzvfarchive.tar.gz`-查看bzip2压缩的tar包(.tar.bz2):`tar-tjvfarchive.tar.bz2`其中:-`-t`表示列出(查看)归档内容-`-v`表示详细模式,显示文件详细信息(权限、所有者、大小、时间等)-`-f`后面指定归档文件名-`-z`表示处理gzip压缩的归档-`-j`表示处理bzip2压缩的归档注意:对于xz压缩的tar包(.tar.xz),可以使用`tar-tJvfarchive.tar.xz`(注意大写J)另外,引用[3]中提到了`tar-tfxxx.tar.gz`(不带v选项)可以仅列出文件列表而不显示详细信息。因此,我们可以总结如下:###查看tar压缩包内容的命令:####1.查看标准tar包(.tar):```bashtar-tvf文件名.tar```####2.查看gzip压缩的tar包(.tar.gz,.tgz):```bashtar-tzvf文件名.tar.gz```或者(如果不想看详细信息,只列出文件名):```bashtar-tf文件名.tar.gz```####3.查看bzip2压缩的tar包(.tar.bz2):```bashtar-tjvf文件名.tar.bz2```####4.查看xz压缩的tar包(.tar.xz):```bashtar-tJvf文件名.tar.xz```###示例:假设我们有一个名为`backup.tar.gz`的压缩包,要查看内容,可以运行:```bashtar-tzvfbackup.tar.gz```输出示例:```-rw-r--r--user/group02023-01-0112:00file1.txt-rw-r--r--user/group1232023-01-0112:01file2.txtdrwxr-xr-xuser/group02023-01-0112:02directory/```###注意事项:-如果压缩包很大,可以使用管道配合`less`来分页查看:`tar-tvfarchive.tar|less`-如果只想查看某个特定目录或文件,可以在命令末尾加上路径(支持通配符):```bashtar-tfarchive.tar.gz"path/to/directory/*"```注意:路径名要用引号括起来,特别是包含空格时。###常见问题:-**命令参数顺序**:`-f`选项后面必须紧跟文件名,因此通常将选项组合放在最后,例如`tar-tvfarchive.tar`。-**权限问题**:如果压缩包中的文件属于其他用户,查看内容不需要特殊权限,但解压时可能需要相应权限才能还原文件属性。通过以上命令,我们可以方便地查看tar压缩包内容而无需解压。---§§相关问题§§1.如何不解压直接读取压缩包内特定文件的内容2.如何过滤tar命令查看内容,只显示特定类型的文件?3.tar命令在查看压缩包内容时如何显示文件大小以易读的格式(如KB、MB)?</think>### 使用 tar 命令查看压缩包内容的方法 根据引用内容[1]和引用内容[3],查看不同格式压缩包内容的命令如下: #### 1. **查看标准 tar内容** ```bash tar -tvf 文件名.tar ``` - `-t`:列出归档内容(list) - `-v`:显示详细信息(verbose) - `-f`:指定归档文件 #### 2. **查看 gzip 压缩的 tar(.tar.gz/.tgz)** ```bash tar -tzvf 文件名.tar.gz ``` - `-z`:通过 gzip 解压缩 #### 3. **查看 bzip2 压缩的 tar(.tar.bz2)** ```bash tar -tjvf 文件名.tar.bz2 ``` - `-j`:通过 bzip2 解压缩 #### 4. **查看 xz 压缩的 tar(.tar.xz)** ```bash tar -tJvf 文件名.tar.xz ``` - `-J`:通过 xz 解压缩 --- ### 使用示例 1. **查看压缩包内所有文件** ```bash tar -tvf documents.tar ``` 输出示例: ``` -rw-r--r-- user/staff 1024 2023-08-01 10:30 report.pdf drwxr-xr-x user/staff 0 2023-08-01 10:32 images/ ``` 2. **查看 gzip 压缩包内容** ```bash tar -tzvf backup.tar.gz ``` 3. **仅列出文件名(不显示详情)** ```bash tar -tf archive.tar.bz2 ``` 4. **查看特定目录内容** ```bash tar -tf data.tar.gz --wildcards 'logs/*.txt' ``` --- ### 关键参数说明 | 参数 | 作用 | |------|------| | `-t` | 列出归档内容(核心参数) | | `-v` | 显示文件权限/大小/日期等详细信息 | | `-f` | 必须后接文件名 | | `-z/-j/-J` | 指定压缩算法(gzip/bzip2/xz) | | `--wildcards` | 使用通配符过滤文件 | > **注意**:`-f` 必须放在参数组合的最后位置,否则会报错[^1][^3] --- ### 高级技巧 1. **分页查看大型压缩包** ```bash tar -tvf large_archive.tar | less ``` 2. **统计文件数量** ```bash tar -tf backup.tar | wc -l ``` 3. **检查特定文件是否存在** ```bash tar -tf data.tar.gz | grep "invoice.pdf" ``` 4. **查看多层压缩包** ```bash tar -tf outer.tar.gz | grep "inner.tar" ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值