Перегляд списку файлів у архіві ZIP в Linux


407

Як я можу переглянути список файлів у архіві ZIP, не розпаковуючи його?


Чи можна зробити те ж саме для звичайного архіву unix? (tar / gzip / bz2 / тощо)
ThorSummoner

тар твф. якщо .gz, додайте z. Для bz2 додати j. Ще багато, перегляньте довідкову сторінку.
UtahJarhead

Відповіді:


469

lessУтиліта здатна заглядати в zipархів. Насправді, якщо ви подивитеся на результати unzip -l zipfileта less zipfile, ви виявите, що вони однакові.


98
Зауважте, що less zipfileна MacOS-X відображається двійковий файловий вміст, тож ви бачите багато сміття замість вмісту zip-файлу. Тоді вам слід вибрати `` ùnzip -l zipfile```
heiglandreas

10
@ayaz У якій системі менше списків zipfiles? Я бачу коментарі, які говорять про те, що це не працює на MAC, Ubuntu, і тут я використовую Debian. Debian також показує бінарне сміття.
Д-р Беко

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

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

17
Вам потрібен lesspipeпомічник, щоб зменшити підтримку zip-файлів. Це стандартно для багатьох систем Linux, але не для OSX, але ви можете встановити його за допомогою варіння.
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

13

Ви можете зробити зіп виглядати як каталог (в якому використовується 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 доступний лише для читання. Запобіжник-zip - це читання-запис, але будьте обережні, що зміни записуються до zip-файлу лише у відключений час, тому не починайте читати архів, очікуючи, що він буде змінений до fusermount -uповернення.


Приємно, Джайлз. Дякую. Просто швидко: чи можна додати до нього файли, просто натиснувши "cp" ing до каталогу?
Доктор Беко

@DrBeco За допомогою запобіжника, так. З авфс, ні.
Жиль

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 також може переглядати поштові файли, немовби вони були звичайними каталогами.


1

Більш комплексне рішення: vim || emacs

Попередня відповідь @kinORnirvana - це моє улюблене, щоб створити файл із вмістом zip-архіву.

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

Однак я рекомендую vim або emacs (не нано), якщо вам потрібно переглянути архівний файл або навіть переглянути вміст файлу, що міститься всередині нього.

vim archive.zip

Цей підхід працює і з іншими архівними форматами:

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

За допомогою vim або emacs ви можете:

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

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


0

(yaa) Ще одна відповідь:

Псевдонім ця команда:

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.