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

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

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

早些时候问题询问是否查看存档的目录。但对我来说,仅查看存档中的文件列表是不够的,我需要查看存档中文件的内容。

答案1

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

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

unzip -p archive.zip file1.txt | less

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

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

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

答案2

您可以使用vim列出内容zip/rar/tar档案:

vim archive.zip

顺便提一句:这里是同一个问题。

答案3

zipinfounzip是您可能使用的另一个工具,如果您处于不允许的锁定系统上,这个工具很有用。

答案4

Emacs在命令行中启动并使用Zip-Archive模式打开 zip 文件。无需任何 Emacs/elisp 调整(新用户通常担心),您将看到文件详细信息,如来自zipinfo:模式、长度、日期、时间

然后,您将能够使用标准快捷方式打开缓冲区中的文件,甚至将更改保存回存档:

  • 在列表中输入文件名以打开它
  • 编辑并保存Ctrl-x Ctrl-s
  • 杀死缓冲区Ctrl-k返回存档缓冲区并继续

Zip-Archive在缓冲区中时,使用Ctrl-h m可获取帮助视图中可用的所有快捷方式。

希望这能让你发现 Emacs 的强大功能

相关内容