我无法使用,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 上可能需要这样gzcat
。gunzip -c
更新:@Riccardo Murri 指出tar
Solaris 上的默认行为是不是阅读stdin
(这看起来非常不符合Unix风格,但生活如此),所以zcat file.tar.gz | tar -tv -f -
可能就是您所需要的。
更新 2:终于找到了一个看起来不错的 Solarisman
页面站点,所以我向您展示man gunzip
和man 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 -
解压,解压后应该可以看到该目录。