如何在ls
不解压缩的情况下从命令 shell 获取相当于 .zip 文件(不是 gzip)的文件?也就是说,我如何列出在我的 .zip 存档中压缩的不同文件?
10 回答
使用带有 -l
选项的解压缩:
unzip -l file.zip
该less
实用程序能够窥视zip
档案。
Less 与 Unix 捆绑在一起,无需安装 als。输出是可滚动的(分页)并且不会将内容记录到终端(与其他答案中提到的 unzip -l 不同)。
根据https://superuser.com/a/216675/249975,
所以简单地使用less filename.zip
Perreal 的回答是正确的,但我建议安装atool(在您的发行版的包管理器中查找它)。然后,对于任何类型的存档文件,bzip2、gzip、tar ......您只需要记住一个命令:
als archive_name
使用此命令在不解压缩的情况下查看压缩文件的内容
unzip -l file.zip
我们可以使用的 Gor tar 文件
zcat <archived-file>
zipinfo -1 filename.zip
它只返回文件名,不再返回示例(响应):
listing.html
my_data.csv
super.txt
在 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
我将添加以下选项,因为我发现这是迄今为止最方便的方法(探索 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 还支持某些存档格式的写访问,您也可以直接从存档内部编辑文本文件。
您也可以使用“zmore archive_name”。它将列出存档及其内容。
如果您想浏览单个压缩文件,请尝试使用 zless。当 zip 包含多个文件时,这可能不太有用。
根据手册页的描述:
Zless 是一种过滤器,它允许在软拷贝终端上一次一屏地检查压缩或纯文本文件。相当于将环境变量 LESSOPEN 设置为 '|gzip -cdfq -- %s',将环境变量 LESSMETACHARS 设置为 '<new-line>;*?"()<>[|&^`#$% =~',然后运行得更少。然而,似乎有足够多的人认为让命令 zless 可用很重要,值得提供它。
其他一些方便的“z”实用程序是 zcat 和 zmore(在前面的答案中提到)、zdiff 和 zgrep。
关于回答原始问题,如何查看 zip 的内容,我更喜欢 zipinfo 后跟 unzip -l。
要在 Linux 主机上列出/查看压缩文件的内容而不解压缩(以及安装 GZIP 的位置),请使用“zcat”命令。
zcat 压缩文件名 |更多