740

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

DavidPostill
  • 162,382
johnlemon
  • 7,963
  • 3
  • 20
  • 16

13 Answers13

838

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,970
216

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

148

To list zip contents:

zipinfo -1 myzipfile.zip

For detailed output:

zipinfo myzipfile.zip
kinORnirvana
  • 1,591
72

Please use

vim ZIP_FILE_NAME

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

Kevin Panko
  • 7,466
18

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).

9

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
  • 311
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

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

1

As an alternative, one can use bsdtar (bundled with libarchive):

bsdtar -tf <zip_archive>
ᄂ ᄀ
  • 4,187
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,125
-2

Try this -

zipdetails yourFileName.zip
URL87
  • 303