Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何列出嵌套存档(.gz)的内容_Unix_Nested_Archive_Tar_Gzip - Fatal编程技术网

Unix 如何列出嵌套存档(.gz)的内容

Unix 如何列出嵌套存档(.gz)的内容,unix,nested,archive,tar,gzip,Unix,Nested,Archive,Tar,Gzip,我有一个压缩归档文件(archives.tar.gz),它包含压缩归档文件f1.tar.gz、f2.tar.gz、f3.tar.gz 我想列出一个子归档文件的内容,比如f1.tar.gz,而不实际地对所有内容进行备份和解压缩。换句话说,我需要能够执行类似于:tar-ztvf f1.tar.gz的操作,而不必首先执行:tar-zxvf archives.tar.gz 有什么办法吗 非常感谢 由于压缩的性质,没有真正的方法可以做到这一点而不产生解压缩归档的一些开销。如果要避免创建中间文件,可以执行以

我有一个压缩归档文件(archives.tar.gz),它包含压缩归档文件f1.tar.gz、f2.tar.gz、f3.tar.gz

我想列出一个子归档文件的内容,比如f1.tar.gz,而不实际地对所有内容进行备份和解压缩。换句话说,我需要能够执行类似于:tar-ztvf f1.tar.gz的操作,而不必首先执行:tar-zxvf archives.tar.gz

有什么办法吗


非常感谢

由于压缩的性质,没有真正的方法可以做到这一点而不产生解压缩归档的一些开销。如果要避免创建中间文件,可以执行以下操作:

tar -zxOf archives.tar.gz f1.tar.gz | tar -ztf -

这将仅从存档中提取
f1.tar.gz
,并将其提供给第二个tar,后者将列出文件。

谢谢Jim,您的解决方案是有意义的,但我不确定最后的连字符。那有什么用?我无法让它完全使用这种语法(末尾的连字符),但我可以通过在第二个tar之后指定文件名来实现它:tar-zxvf archives.tar.gz f1.tar.gz | tar-ztf f1.tar.gz…唯一的缺点是我只剩下中间的f1.tar.gz,末尾的连字符告诉它从标准输入读取。它必须跟随
f
,因为它被用作文件名。在Unix中使用
-
作为文件名是“从标准输入读取而不是打开文件”的惯例。如果要在中添加其他标志(例如
v
),请确保它们位于
f
。酷-因此我再次尝试了它//这样我就没有得到任何结果matt#tar-zxvf log(u backup)112912.tar.gz./booksite-1.0-event.log.tar.gz | tar-tvf-matt#tar-zxvf archives.tar.gz./.tar.gz | tar-tvf.-booksite*-rw-r--r--root/root 556504 2012-11-27 23:16:43./booksite-1.0-event.log.121127抱歉,我在编辑之前无意中发布了这个帖子。以下是我编辑的评论:

我再次尝试,但由于某种原因,它没有返回任何内容。但是,这应该是因为在下面的示例中,我知道文件./booksite-1.0-event.log.tar.gz不是空的。知道我做错了什么吗?再次感谢你的帮助

这样我没有得到任何结果…
matt#tar-zxvf log_backup_112912.tar.gz./booksite-1.0-event.log.tar.gz | tar-tvf-
matt#尝试从booksite路径中删除前导的
/
。执行
tar ztf log\u backup_112912.tar.gz
以查看顶级一级中子存档的确切名称。