首页 > 解决方案 > 在 tar 文件中列出 zip 文件的内容

问题描述

我有一个 tar 文件。里面是一些 zip(不是 gzip)文件。我想列出 zip 文件的内容而不提取任何内容。

我可以执行 tar tf 来列出文件,然后遍历它们并对每个 zip 文件执行 unzip -l 。

有没有一种优雅的(单线)方式来做到这一点?

标签: tarunzip

解决方案


tar开始,您可以使用-O命令行选项将其写入标准输出。

旁边解压部分的问题。标准的 Linux infozip 版本的 zip/unzip 不支持从标准输入读取输入。funzip命令是 infozip的一部分,可以从标准输入读取,从标准输入读取,但它只支持解压缩。它没有列出内容的选项。

幸运的是,Java jar 文件实际上只是具有良好定义结构的 zip 文件,jar命令可以从标准输入读取并列出输入文件的内容

因此,假设您有一个名为my.tar的 tar 文件,它只包含 zip 文件,这样的内容应该列出嵌入的 zip 文件中的文件名

tar xOf my.tar | jar -t

推荐阅读