如何在不解压缩的情况下查看ZIP存档中的文件列表?

评论

常规的unix归档文件是否可以这样做? (tar / gzip / bz2 /等)

焦油电视如果是.gz,请添加一个z。对于bz2,添加j。还有很多,请查看手册页。

#1 楼

less实用程序能够查看zip存档。实际上,如果查看unzip -l zipfileless zipfile的输出,您会发现它们是相同的。

评论


请注意,MacOS-X上的zipfile较少,可以显示二进制文件内容,因此您会看到很多垃圾,而不是zip文件的内容。然后您应该选择``ùnzip-l zipfile''

– heiglandreas
13年1月25日在9:59

@ayaz在哪个系统中列出的zip文件更少?我看到评论说它在MAC,Ubuntu上不起作用,在这里我使用Debian。 Debian还显示了二进制垃圾。

– DrBeco
2014年8月12日下午4:38

在Ubuntu中,尝试查看[zipfile]。

–塞缪尔·兰帕(Samuel Lampa)
2014年9月10日下午16:07

您需要安装lesspipe helper来启用对zip文件的支持。它是许多Linux系统上的标准配置,但不是OSX上的标准配置,但是您可以通过brew安装它。

– Pimlottc
2015年6月18日19:37



使用更少的东西是一个很好的技巧,但是解压缩-l似乎是规范的答案,尤其是。鉴于这是一个更为通用的答案。

– Mark E. Haase
15年6月29日在21:30



#2 楼

尝试unzip -l files.zip | less

此外,请参阅man unzip了解更多选项

评论


您可以跳过管道到less命令。不过,在大量文件中这是个好主意。

–omar
2014年7月9日14:39

#3 楼

要列出zip内容:

zipinfo -1 myzipfile.zip


详细输出:

zipinfo myzipfile.zip


评论


很好的答案,您不必仅为了获取文件名就解析输出。

– Antoine Pelisse
2014年10月31日23:04

那应该是1而不是l吗?

– Mathias Lykkegaard Lorenzen
1月3日13:33

根据man zipinfo的@MathiasLykkegaardLorenzen:仅-1列出文件名,每行一个。此选项不包括所有其他选项。头,尾和zipfile注释永远不会打印。它旨在用于Unix shell脚本中。

–何一非何一非
7月15日23:16

-1标志与ls命令匹配。 ls -1打印所有文件,每个文件一行。

–尼克·加维(Nick Garvey)
8月19日21:16

#4 楼

请同样使用

vim ZIP_FILE_NAME


。这是一个简单易记的方法。

评论


不错,这还允许打开存档中的单个文件而无需进行解压缩

–user3885927
16-09-22在17:25

非常出乎意料,非常方便!谢谢!

–皮埃尔
19年2月1日于16:46

实际上:如果未在系统上安装解压缩,则此方法将无效。除此之外,太棒了!

– sjas
19 Mar 24 '19在22:04

#5 楼

您可以通过将目录与fuse-zip虚拟文件系统挂接在一起,使该目录作为目录显示(使用cdls等)。

mkdir foo.d
fuse-zip foo.zip foo.d
ls foo.d
cat foo.d/README
...
fusermount -u foo.d
rmdir foo.d


另一个相关的FUSE文件系统是AVFS。它会创建整个目录层次结构的视图,其中所有档案都具有一个关联目录(末尾加上#的相同名称),该目录似乎包含档案内容。

mountavfs
ls ~/.avfs/$PWD/foo.zip\#
cat ~/.avfs/$PWD/foo.zip\#/README
...
umountavfs


许多现代文件管理器(例如Nautilus,Dolphin)都透明地显示档案内容。

AVFS是只读的。 Fuse-zip是可读写的,但请注意,更改仅在卸载时才写入zip文件,因此在fusermount -u返回之前,不要开始阅读期望对其进行修改的存档。

评论


很好,吉尔斯。谢谢。很快:可以通过“ cp”到目录来向其中添加文件吗?

– DrBeco
2014年8月12日下午4:45

@DrBeco有保险丝,是的。使用avfs,不可以。

–吉尔斯'所以-不再是邪恶的'
2014年8月12日上午9:15

#6 楼

至少在Ubuntu中,可能最简单的命令是:

view [zipfile]


这将在标准文本编辑器(nano,vim等)中打开文件列表。

评论


也适用于macOS

–加文
7月1日14:45

#7 楼

它实际上是unzip -l file.zip | grep "search"还是如果您有很多文件

for i in `ls *zip`; do 
  unzip -l $i | grep "search"; 
done


更新:为了搜索文件,已从“ -p”更改为“ -l”。

#8 楼

如果您更注重图形,Midnight Commander也可以浏览zip文件,就像它们是常规目录一样。

#9 楼

更全面的解决方案:vim || emacs

@kinORnirvana的上一个答案是我最喜欢的生成包含zip存档内容的文件的方法。

zipinfo [-1] archive.zip > archive_content.txt


但是,我如果需要浏览存档文件甚至查看其中包含的文件的内容,建议使用vim或emacs(而不是nano)。

vim archive.zip


这种方法有效也可以使用其他存档格式:

vim file.tar
vim file.tar.gz
vim file.tar.bz2


使用vim或emacs,您可以:


浏览存档文件的目录结构。
查看存档文件中任何文件的内容。



#10 楼

(yaa)另一个答案:

将该命令别名:

alias vless='/usr/share/vim/vim73/macros/less.sh'

,您可以使用vless file.zip来利用vi(或vim)较少的脚本。

(也可以代替较少的文本,因此可以有颜色)

评论


less -R不支持ANSI颜色。

–西尔万·勒鲁(Sylvain Leroux)
16年11月18日在14:19

#11 楼

试试这个-

zipdetails yourFileName.zip


评论


您能否提供一些示例输出? zipdetails是标准Linux内核的一部分,还是OP需要单独安装它?

– Burgi
2月10日15:46



使用zipdetails yourFileName.zip会更好吗? grep“文件名”?

– zx485
2月10日23:24