如何查看 tar.gz 文件的内容(文件名 + 文件大小)

如何查看 tar.gz 文件的内容(文件名 + 文件大小)

我无法使用,tar -tz因为我正在使用的Solaris 版本不接受-z 选项。

我尝试过类似的方法gunzip file.tar.gz | tar -tv,但这只给出:

tar: /dev/rmt/0: 没有这样的文件或目录

...并将 tar.gz 解压缩为 .tar,这是不需要的。我只想不加修改地看看它们的内部。

答案1

手边没有 Solaris 盒子,但是类似的东西不就可以zcat file.tar.gz | tar -tv解决问题吗?我不确定,在 Solaris 上可能需要这样gzcatgunzip -c

更新:@Riccardo Murri 指出tarSolaris 上的默认行为是不是阅读stdin(这看起来非常不符合Unix风格,但生活如此),所以zcat file.tar.gz | tar -tv -f -可能就是您所需要的。

更新 2:终于找到了一个看起来不错的 Solarisman页面站点,所以我向您展示man gunzipman tar

答案2

如果您只有 Sun 版本的 tar,正确的答案是:

gzip -dc 文件.tar.gz |焦油-tf-

正如给出的里卡多·穆里在上面的评论中。从今天开始,您可以在任何版本的 Solaris 上使用该命令。

如果您有 GNU tar 可用,那么您当然不会问这个问题。我相信在 Solaris 11 上默认安装了 GNU tar,但是会调用它gtar以将其与标准 Sun 版本的 tar 区分开来。

如果由于某种原因 GNU tar 没有安装在 Solaris 11 系统上,那么您可以像这样安装它:

pkg install //solaris/archiver/gnu-tar

有点讽刺的是,GNU tar 现在在 Solaris 11 上的默认安装中可用,因为它已经变得不再需要:Oracle/Sun 似乎已经更新了自己的 tar,以便它现在提供压缩支持(类似于 GNU tar)并且它可以处理麻烦的 Linux tar 文件,以前如果您尝试使用 Sun tar 解压这些文件,这些文件会出现错误。


在 Solaris 10 上,您可以希望您的系统管理员能够安装“Solaris Companion CD”的内容,在这种情况下,您将在/opt/sfw/bin/gtar.不幸的是,许多 Solaris 系统管理员故意以不是安装 Sun(现为 Oracle)的软件包,使 Solaris 系统在设置主机时“兼容 GNU”。我不知道为什么。

无论如何:您的系统上应该始终有 GNU tar(至少在 <Solaris11 上)。大多数开源软件包都是用 GNU tar 打包的,在某些情况下,由于我认为符号链接的处理方式存在一些差异,因此无法使用 Sun tar 解压这些软件包。相反的情况则不然,即 GNU tar 始终可以解压使用 Sun tar 创建的文件。

在您的组织中:确保 GNU tar 是新 Solaris 主机的默认软件包的一部分!

答案3

尝试tar -tvf <filename>.tar.gz(:

答案4

在Solaris 10中,使用gzip -dc target.tar.gz | tar xf -解压,解压后应该可以看到该目录。

相关内容