Просмотр списка файлов в ZIP-архиве на Linux


403

Как я могу просмотреть список файлов в ZIP-архиве, не распаковывая его?


Можно ли сделать то же самое для обычного архива Unix? (tar / gzip / bz2 / etc)
ThorSummoner

tar tvf. если .gz, добавьте z. Для bz2 добавьте j. Много больше, проверьте справочную страницу.
UtahJarhead

Ответы:


464

lessУтилита способна заглядывать в zipархив. На самом деле, если вы посмотрите на результаты unzip -l zipfileи less zipfile, вы обнаружите, что они идентичны.


97
Обратите внимание, что less zipfileна MacOS-X отображается двоичное содержимое файла, поэтому вы видите много мусора вместо содержимого zip-файла. Тогда вы должны выбрать `` ùnzip -l zipfile```
heiglandreas

10
@ayaz В какой системе меньше списков zip-файлов? Я вижу комментарии о том, что он не работает на MAC, Ubuntu, и здесь я использую Debian. Debian также показывает бинарный мусор.
Доктор Беко

12
В Ubuntu попробуйте view [zipfile].
Самуэль Лампа

4
НЕПРАВИЛЬНО. unzip -l хорошо работает, чтобы показать файлы внутри zip-архива, но во многих случаях меньше выдает двоичный контент, и это, конечно, беспорядок.
Артурас М

17
Вам нужен lesspipeустановленный помощник, чтобы включить поддержку zip-файлов за меньшие деньги. Это стандарт для многих систем Linux, но не для OSX, но вы можете установить его с помощью brew.
pimlottc

112

Пытаться unzip -l files.zip | less

Также см. man unzipДополнительные параметры


6
Вы можете пропустить канал для lessкоманды. Это отличная идея в большой коллекции файлов.
Омар

65

Чтобы просмотреть содержимое почтового индекса:

zipinfo -1 myzipfile.zip

Для подробного вывода:

zipinfo myzipfile.zip

7
Хороший ответ, вам не нужно анализировать вывод, чтобы получить имена файлов.
Антуан Пелисс,

34

Пожалуйста, используйте

vim ZIP_FILE_NAME

для того же. Это простой и легко запоминающийся.


5
Хорошо, это также позволяет открывать отдельные файлы в архиве без распаковки
user3885927

Совершенно неожиданно и чрезвычайно удобно! Спасибо!
Пьер

На самом деле: это не будет работать, если unzipне установлен в системе. Кроме того, круто!
Sjas

12

Вы можете сделать зип выглядеть как каталог (в котором используется cd, lsи т.д.) путем установки его с предохранителем на молнии виртуальной файловой системы.

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 с предохранителем, да. С avfs нет.
Жиль

9

По крайней мере, в Ubuntu, возможно, самая простая команда:

view [zipfile]

Это откроет список файлов в вашем стандартном текстовом редакторе (nano, vim и т. Д.).


2

Это на самом деле unzip -l file.zip | grep "search"или если у вас много файлов

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

Обновление: изменено с '-p' на '-l' для поиска файлов.


2

Если вы более ориентированы на графику, Midnight Commander также может просматривать zip-файлы, как если бы они были обычными каталогами.


1

Более комплексное решение: 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 вы можете:

  • просмотрите структуру каталогов архива.
  • просмотреть содержимое любого файла внутри файла архива.

введите описание изображения здесь


0

(да) Еще один ответ:

Псевдоним этой команды:

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

и вы можете использовать, vless file.zipчтобы воспользоваться vi(или vim) меньшим количеством сценариев.

(также полезно заменить меньше, так что вы можете иметь цвета)


1
less -R действительно поддерживает цвета ANSI.
Сильвен Леру
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.