无需提取即可读取压缩文件的内容?

Shr*_*nth 205 linux zip

如何在不提取包含在其中的 .zip 文件的情况下读取存档中特定文件的内容?我正在使用 Linux 命令行。

较早的问题询问有关查看存档目录的信息。但对我来说,仅查看存档中的文件列表是不够的,我需要查看存档中文件的内容。

dan*_*gie 260

unzip -l archive.zip 列出 ZIP 存档的内容以确保您的文件在里面。

使用该-p选项将命名文件的内容写入标准输出(屏幕),而无需解压缩整个存档。

unzip -p archive.zip file1.txt | less

对于这种操作,我总是将输出通过管道传输到less,否则整个文件会在您阅读之前飞上屏幕。

顺便说一句,zcat 非常适合查看 .gz 文件的内容,而无需先解压缩它们。

编辑:将此答案更改为使用-p而不是-c. -p逐字节提取文件,同时-c打印文件名并可能进行 EOL 转换。此外,unzip -p允许您提取多个文件,但它不会像给出的顺序那样输出cat

  • 至少在 Ubuntu 中,less 以某种方式默认配置为执行此操作 - 所以 `less archive.zip` 实际上显示了文件列表。 (10认同)
  • unzip -c 还显示文件名和一些额外的消息(将它们发送到标准输出)。使用 -p 仅以二进制格式发送文件。这对管道更有用 (5认同)
  • `unzip -p ...` 将把存档中文件的内容 * 不* 插入到输出流中 (3认同)

pat*_*eza 11

//你可以使用来列出存档vim的内容:ziprartar

vim archive.zip
Run Code Online (Sandbox Code Playgroud)

顺便说一句:是同样的问题。


小智 7

zipinfo是您可能会使用的另一种工具,如果您在unzip不允许使用的锁定系统上,这将很有用。


小智 -1

如果该文件包含在 zip 存档中,则您只需从存档中提取该文件(可能取决于存档类型,某些存档无法单独提取文件)