我有一个 tar 文件。它里面有许多 zip(不是 gzip)文件。我想列出 zip 文件的内容而不解压任何内容。
我可以执行 tar tf 来列出文件,然后迭代它们并对每个 zip 文件执行 unzip -l 操作。
有没有一种优雅的(单行)方法来做到这一点?
最佳答案
从 tar 开始,您可以使用 -O 命令行选项将其写入标准输出。
在问题的解压缩部分旁边。标准 Linux infozip 版本的 zip/unzip 不支持从 stdin 读取输入。 funzip 命令是 infozip 的一部分,可以从 stdin 读取,但它只支持解压缩。它没有列出内容的选项。
幸运的是,Java jar 文件实际上只是具有明确定义结构的 zip 文件,并且 jar 命令可以从标准输入读取并列出输入文件的内容
因此,假设您有一个名为 my.tar 的 tar 文件,其中仅包含 zip 文件,类似这样的内容应该列出嵌入的 zip 文件中的文件名称
tar xOf my.tar | jar -t
关于tar - 列出 tar 文件中 zip 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52999766/