如何在命令行中获取 .zip 文件(不是gzip)的相当于ls
的东西?也就是说,如何列出压缩在我的 .zip 文件中的不同文件?请注意,这应该是一个不需要解压缩的操作。
less
实用程序能够查看 zip
压缩文件。
less
工具已经捆绑在 Unix 中,无需额外安装。输出结果可滚动分页显示,并且不会像其他答案中提到的 unzip -l 命令那样将内容记录到终端。
参考https://superuser.com/a/216675/249975,
因此,只需使用less filename.zip
命令即可。
unzip -l file.zip
。 - PierrePerreal的回答是正确的,但我建议安装atool(在您的发行版软件包管理器中查找)。然后,对于任何类型的归档文件,如bzip2,gzip,tar...您只需要记住一个命令:
als archive_name
unzip -l file.zip
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
mkdir mount-point
archivemount archive.tar.gz mountpoint
cd mount-point
umount mount-point
解释
您需要创建一个空文件夹作为挂载点。最简单的方法是在存档文件所在的文件夹中创建该文件夹,就像上面的示例一样。虽然您可以在任何位置创建它。只需相应更改命令中的mount-point
即可。
一旦您进入mount-point
文件夹,您将拥有一个普通的Linux文件夹和文件树,可以使用任何用于在Linux中探索、查找、cat、编辑、ls等文件夹和文件的命令进行探索。非常方便。
完成后,请使用umount
卸载存档。
请注意,您可能需要先安装archivemount
。例如,sudo apt install archivemount
。
我基本上想要一种简单的方法来调查大型tar文件的内容。对于我来说,仅仅拥有大量文件夹和文件名的文本输出(数万行)并不特别有用。即使找到了通过其他后处理器将该内容管道传输的方法。
您可以使用此方法处理zip文件、tar文件以及使用gzip、bzip或compress压缩的文件。
有关archivemount
的完整详细信息,请参见此处。
关于它的一个很好的介绍在这里。
这句话(来自那篇文章)总结了这个工具的灵活性:
[因为archivemount通过FUSE]通过Linux内核公开其文件系统,您可以使用任何应用程序将文件直接加载和保存到这样的挂载存档中。这使您可以在仍然位于存档文件内的文件上使用您喜欢的文本编辑器、图像查看器或音乐播放器。更进一步,由于archivemount还支持某些存档格式的写访问权限,因此您还可以从存档内部直接编辑文本文件。
如果您想浏览单个压缩文件,请尝试使用zless。当zip包含多个文件时,这可能没有那么有用。
根据man页面的描述:
Zless是一种过滤器,允许在软复制终端上逐屏查看压缩或纯文本文件。它相当于将环境变量LESSOPEN设置为'|gzip-cdfq--%s',将环境变量LESSMETACHARS设置为'<new-line>;*?"()<>[|&^`#$%=~',然后运行less命令。不过,足够多的人似乎认为提供可用的zless命令很重要。
其他一些方便的"z"工具包括zcat和zmore(在先前的答案中提到),还有zdiff和zgrep。
关于回答最初的问题,如何查看zip的内容,我更喜欢使用zipinfo,然后是unzip -l。
如果在 Linux 主机上安装了 GZIP,想要查看压缩文件的内容而不需要解压缩它,可以使用 "zcat" 命令。
zcat 压缩文件名 | more
man unzip
或访问此处。) - Joeunzip -l file.zip
只列出第一层级别的文件和文件夹,而不是这些文件夹内部的文件。 - msoutopico