如何在不提取包含特定文件的 .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
答案3
zipinfo
unzip
是您可能使用的另一个工具,如果您处于不允许的锁定系统上,这个工具很有用。
答案4
Emacs
在命令行中启动并使用Zip-Archive
模式打开 zip 文件。无需任何 Emacs/elisp 调整(新用户通常担心),您将看到文件详细信息,如来自zipinfo
:模式、长度、日期、时间
然后,您将能够使用标准快捷方式打开缓冲区中的文件,甚至将更改保存回存档:
- 在列表中输入文件名以打开它
- 编辑并保存
Ctrl-x Ctrl-s
- 杀死缓冲区
Ctrl-k
返回存档缓冲区并继续
Zip-Archive
在缓冲区中时,使用Ctrl-h m
可获取帮助视图中可用的所有快捷方式。
希望这能让你发现 Emacs 的强大功能