Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在不解压缩的情况下在zip存档中列出文件?_Linux_Bash_Shell_Unix_Zip - Fatal编程技术网

Linux 如何在不解压缩的情况下在zip存档中列出文件?

Linux 如何在不解压缩的情况下在zip存档中列出文件?,linux,bash,shell,unix,zip,Linux,Bash,Shell,Unix,Zip,如何从命令shell中获得与.zip文件(不是gzip)的ls等效的文件,而不进行解压缩?也就是说,如何列出.zip存档中压缩的不同文件?-l选项: unzip -l file.zip 是正确的,但我建议安装(请在发行版的PackageManager中查找)。然后,对于任何类型的归档文件,bzip2、gzip、tar。。。您只需记住一个命令: als archive_name 您还可以使用“zmore存档名称”。 它将列出存档和It内容。使用Debian/Ubuntu中的lesspipe,它

如何从命令shell中获得与.zip文件(不是gzip)的
ls
等效的文件,而不进行解压缩?也就是说,如何列出.zip存档中压缩的不同文件?

-l
选项:

unzip -l file.zip
是正确的,但我建议安装(请在发行版的PackageManager中查找)。然后,对于任何类型的归档文件,bzip2、gzip、tar。。。您只需记住一个命令:

als archive_name
您还可以使用“zmore存档名称”。
它将列出存档和It内容。

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

用法:

lesspipe file.zip

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

zcat压缩文件名|更多

zipinfo -1 filename.zip
它只返回文件名,不返回更多,例如(响应):


less
实用程序能够查看
zip
归档文件

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

根据,


因此,只需使用
less filename.zip

即可通过使用此命令查看压缩文件的内容,而无需解压缩

unzip -l file.zip
我们可以使用的Gor tar文件

zcat <archived-file>
zcat

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

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

这是按如下方式执行的:

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

umount mount-point
解释

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

cd
进入
mount point
文件夹后,您将拥有一个普通的Linux文件夹和文件树,可以使用其他命令在Linux中浏览、查找、cat、edit、ls等文件夹和文件。非常方便

完成后,使用
umount
卸载存档

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

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

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

archivemount
的详细信息如下所示

这是一篇很好的评论

这段引文(来自那篇文章)总结了该工具的灵活性:

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


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

根据手册页中的说明:

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

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


关于回答最初的问题,如何查看zip的内容,我更喜欢zipinfo,然后是unzip-l。

zmore是一个文件阅读过滤器,用于crt查看压缩文本。如果压缩多个文件,它只显示第一个文件。(perreal的回答很有效,这就是为什么我想让zmore获得更多关于压缩文件工具的信息)我很确定它能与LZMA一起工作,是的。从技术上讲,atool只是一个巧妙的Perl脚本,它围绕着你系统上现有的程序。如果你安装了unrar,它能与rar文件一起工作,如果你有7zip,atool会知道7z,等等……你能用一句话解释一下lesspipe是关于什么的吗?并提供一个链接?原始响应中的链接se为我获取了一个HTTP 403,但手册页上有关于它的信息。(运行
manunzip
or。)
解压-l file.zip
只列出第一级中的文件和文件夹,而不列出这些文件夹中的文件。这是不正确的,至少在我使用的版本中是这样。它提供了一个递归列表。@perreal递归列表是什么意思?你是说zip中是否有zip?我是指zip目录中的文件,@petermore.T这不是对我问题的回答;这是关于zip,而不是gzip;不是关于分类内容,而是列出zip存档中的文件。在Ubuntu 20.04上测试过,效果很好。但在MacOS 10上不起作用。15.7在Debian 10上不起作用。
zcat <archived-file>
mkdir mount-point
archivemount archive.tar.gz mountpoint
cd mount-point

umount mount-point