是否可以查看另一个 zip 文件内的 zip 文件的文件名列表?

是否可以查看另一个 zip 文件内的 zip 文件的文件名列表?

我知道我可以用来unzip -l file.zip查看 zip 文件的文件列表。

但是 a 在另一个 zip 文件中得到了一个 zip 文件。我尝试过unzip -l file.zip/sub_file.zip,但失败了。

是否可以在sub_file.zip 不解压的情况下查看文件列表?

答案1

unzip -l file.zip/sub_file.zip不起作用,因为file.zip不是目录:它是一个碰巧采用存档格式的常规文件。但是您可以通过安装显示 zip 文件内容视图的文件系统来创建镜像 zip 文件内容的目录。有多种选择,请选择最容易在您的发行版上安装的选项:

例如,使用 archivemount:

mkdir file.d
archivemount file.zip file.d
unzip -l file.d/sub_file.zip
fusermount -u file.d

甚至

mkdir file.d sub_file.d
archivemount file.zip file.d
archivemount file.d/sub_file.zip sub_file.d
ls -lR sub_file.d
fusermount -u sub_file.d
fusermount -u file.d

仅将压缩存档中的特定文件提取到给定目录,如何递归地 grep 遍历压缩档案?在递归压缩档案中搜索特定大小的文件有关类似情况下 AVFS 和 fusion-zip 的示例。

答案2

您可以less使用沃尔夫冈·弗里贝尔的lesspipe剧本:less file.zip:sub_file.zip

答案3

zsh

$ unzip -l a.zip.zip
Archive:  a.zip.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
      195  2014-08-18 09:38   a.zip
---------                     -------
      195                     1 file

$ unzip -l =(unzip -p a.zip.zip a.zip)
Archive:  /tmp/zsh0i0JyZ
  Length      Date    Time    Name
---------  ---------- -----   ----
       55  2014-08-15 15:24   a
---------                     -------
       55                     1 file

=(...)是进程替换的第三种形式,它使用临时文件而不是管道(unzip仅适用于可查找文件)。

相关内容