64

如何在ls不解压缩的情况下从命令 shell 获取相当于 .zip 文件(不是 gzip)的文件?也就是说,我如何列出在我的 .zip 存档中压缩的不同文件?

4

10 回答 10

114

使用带有 -l选项的解压缩:

unzip -l file.zip
于 2013-03-20T07:37:33.630 回答
21

less实用程序能够窥视zip档案。

Less 与 Unix 捆绑在一起,无需安装 als。输出是可滚动的(分页)并且不会将内容记录到终端(与其他答案中提到的 unzip -l 不同)。

根据https://superuser.com/a/216675/249975

所以简单地使用less filename.zip

于 2018-10-02T05:44:49.617 回答
17

Perreal 的回答是正确的,但我建议安装atool(在您的发行版的包管理器中查找它)。然后,对于任何类型的存档文件,bzip2、gzip、tar ......您只需要记住一个命令:

als archive_name
于 2013-03-20T10:36:43.937 回答
11

使用此命令在不解压缩的情况下查看压缩文件的内容

unzip -l file.zip

我们可以使用的 Gor tar 文件

zcat <archived-file>
于 2019-09-13T11:39:16.707 回答
8
zipinfo -1 filename.zip

它只返回文件名,不再返回示例(响应):

listing.html
my_data.csv
super.txt
于 2017-04-20T20:47:12.473 回答
5

在 Debian/Ubuntu 中使用lesspipe,它还可以列出许多其他存档类型:

     *.arj
     *.tar.bz2
     *.bz
     *.bz2
     *.deb, *.udeb
     *.doc
     *.gif, *.jpeg, *.jpg, *.pcd, *.png, *.tga, *.tiff, *.tif
     *.iso, *.raw, *.bin
     *.lha, *.lzh
     *.pdf
     *.rar, *.r[0-9][0-9]
     *.rpm
     *.tar.gz, *.tgz, *.tar.z, *.tar.dz
     *.gz, *.z, *.dz
     *.tar
     *.jar, *.war, *.xpi, *.zip
     *.zoo

用法:

lesspipe file.zip

参考

于 2014-03-20T09:16:42.777 回答
2

我将添加以下选项,因为我发现这是迄今为止最方便的方法(探索 2GB tar 的内容,包含数万个文件和目录)。

使用archivemount对我来说是最有用的方法。

执行如下:

mkdir mount-point
archivemount archive.tar.gz mountpoint
cd mount-point

umount mount-point

解释

您需要创建一个空文件夹作为挂载点。最简单的方法是在您拥有存档文件的文件夹中创建该文件夹,如上例所示。尽管您可以在任何您喜欢的地方创建它。只需mount-point相应地更改命令即可。

cd进入该文件夹后,您mount-point将拥有一个普通的 Linux 文件夹和文件树,可以使用您在 Linux 中用于探索、查找、cat、编辑、ls 等文件夹和文件的任何命令进行探索。非常便利。

完成后用于umount卸载存档

注意,您可能需要先安装archivemount. 例如,sudo apt install archivemount

为什么我觉得这很有用

我基本上想要一种简单的方法来调查大型 tar 文件的内容。仅仅拥有文件夹和文件名的大量文本输出(数万行)对我来说并不是特别有用。即使在找到通过其他后处理器传输内容的方法之后。

您可以将此方法用于 zip 文件、tar 文件以及使用 gzip、bzip 或 compress 压缩的文件。

完整的细节archivemount这里。

一个很好的文章在这里

这句话(来自那篇文章)总结了这个工具的灵活性:

[因为 archivemount via FUSE] 通过 Linux 内核公开其文件系统,您可以使用任何应用程序将文件直接加载和保存到此类挂载的档案中。这使您可以对仍在存档文件中的文件使用您最喜欢的文本编辑器、图像查看器或音乐播放器。更进一步,因为 archivemount 还支持某些存档格式的写访问,您也可以直接从存档内部编辑文本文件。

于 2020-12-09T23:43:18.503 回答
1

您也可以使用“zmore archive_name”。它将列出存档及其内容。

于 2013-03-20T10:38:43.937 回答
1

如果您想浏览单个压缩文件,请尝试使用 zless。当 zip 包含多个文件时,这可能不太有用。

根据手册页的描述:

Zless 是一种过滤器,它允许在软拷贝终端上一次一屏地检查压缩或纯文本文件。相当于将环境变量 LESSOPEN 设置为 '|gzip -cdfq -- %s',将环境变量 LESSMETACHARS 设置为 '<new-line>;*?"()<>[|&^`#$% =~',然后运行得更少。然而,似乎有足够多的人认为让命令 zless 可用很重要,值得提供它。

其他一些方便的“z”实用程序是 zcat 和 zmore(在前面的答案中提到)、zdiff 和 zgrep。

关于回答原始问题,如何查看 zip 的内容,我更喜欢 zipinfo 后跟 unzip -l。

于 2021-02-22T19:40:46.163 回答
0

要在 Linux 主机上列出/查看压缩文件的内容而不解压缩(以及安装 GZIP 的位置),请使用“zcat”命令。

zcat 压缩文件名 |更多

于 2017-02-07T22:48:41.813 回答