无需解压即可读取 zip 文件中的文件内容?

无需解压即可读取 zip 文件中的文件内容?

给定一个 zip 文件zipfile.zip,我们知道它包含一个名为text.txt.

text.txt有没有办法在不解压的情况下读取内容zipfile.zip

答案1

例如,您可以将文件直接转储到标准输出。从技术上讲,您仍然在解压缩它,但不是解压缩到磁盘:

$ unzip -p zipfile.zip text.txt

例如,要计算行数,您可以这样做:

$ unzip -p zipfile.zip text.txt | wc -l

-c选项类似,但会在内容之前写入每个提取文件的名称。

答案2

libarchivebsdtar支持多种存档格式,包括 infozip / pkzip 格式,因此您可以对所有这些格式使用相同的 CLI:

bsdtar xOf zipfile.zip text.txt

转储标准输出上指定的存档成员的内容text.txt。添加q在第一个处停止的选项(实际上,存档中给定路径通常只有一个条目)。

您可以对tartgzisoarcpio7z文件等执行相同的操作。

答案3

如果 zip 文件包含一个文件,您可以使用

zcat f.zip
zmore f.zip
zless f.zip
zgrep regexp z.zip

这些命令也适用于 gzip 压缩文件。 bzip 和 xzip 有类似的命令

bzcat bzmore bzless bzgrep bzdiff ...
xzcat ...

您还可以使用了解压缩格式的命令。例子:

vim f.zip
vim f.bz2   ...
rg -z patter  z.zip     ## ripgrep recursive grep in compressed files

相关内容