695

How can I view the list of files in a ZIP archive without decompressing it?

DavidPostill
  • 156,873
johnlemon
  • 7,503
  • 3
  • 19
  • 16

12 Answers12

788

The less utility is capable of peeking into a zip archive. In fact, if you look at the outputs of unzip -l zipfile and less zipfile, you will find them to be identical.

ayaz
  • 11,394
204

Try unzip -l files.zip Or unzip -l files.zip | less if there are too many files to be listed in one page.

Also, See man unzip for more options

134

To list zip contents:

zipinfo -1 myzipfile.zip

For detailed output:

zipinfo myzipfile.zip
kinORnirvana
  • 1,451
  • 1
  • 9
  • 5
70

Please use

vim ZIP_FILE_NAME

for the same. This is a simple and easy to remember one.

Kevin Panko
  • 7,366
17

You can make the zip appear as a directory (in which you use cd, ls, etc.) by mounting it with the fuse-zip virtual filesystem.

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

Another relevant FUSE filesystem is AVFS. It creates a view of your entire directory hierarchy where all archives have an associated directory (same name with # tacked on at the end) that appears to hold the archive content.

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

Many modern file managers (e.g. Nautilus, Dolphin) show archive contents transparently.

AVFS is read-only. Fuse-zip is read-write, but beware that changes are only written to the zip file at unmount time, so don't start reading the archive expecting it to be modified until fusermount -u returns.

16

At least in Ubuntu, the possibly easiest command is:

view [zipfile]

This will open up the file listing in your standard text editor (nano, vim etc).

8

A more comprehensive solution: vim || emacs

The previous answer by @kinORnirvana is my favorite to produce a file with the content of a zip archive.

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

However, I recommend vim or emacs (not nano) if you need to browse into an archive file or even to view the content of a file contained inside it.

vim archive.zip

This approach works with other archive formats too:

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

With vim or emacs you can:

  • browse the directory structure of the archive file.
  • view the content of any file inside the archive file.

enter image description here

ePi272314
  • 291
  • 1
  • 3
  • 9
2

If you're more graphically oriented, Midnight Commander can also browse zip files as if they were regular directories.

2

Its actually unzip -l file.zip | grep "search" or if you have a lot of files

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

Update: Changed from '-p' to '-l' in order to search for files.

omar
  • 103
Rob
  • 21
1

(yaa) Yet another answer:

Alias this command:

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

and you can use vless file.zip to take advantage of vi (or vim) less script.

(also good to substitute less, so you can have colors)

DrBeco
  • 2,005
0

it is possible to peek inside also with zmore, zless, zcat, but with vim is in a structured way

-1

Try this -

zipdetails yourFileName.zip
URL87
  • 305
  • 2
    Could you possibly include some example outputs? Is zipdetails part of the standard Linux kernel or would the OP need to install this separately? – Burgi Feb 10 '20 at 15:46
  • 1
    Wouldn't it be better to use zipdetails yourFileName.zip | grep "Filename "? – zx485 Feb 10 '20 at 23:24
  • 1
    Zipdetails displays information about the internal record structure of zip files. It is not concerned with displaying any details of the compressed data stored in the zip file. zipinfo seems much more appropriate here – xeruf Oct 15 '21 at 10:27
  • @zx485 Using Redhat 7, I'm unable to use any commands in other answers, and we're unable to request to install anything on that server. Your solution was useful, thanks! – Metafaniel Aug 03 '22 at 00:09