Zobacz listę plików w archiwum ZIP w systemie Linux

407

Jak wyświetlić listę plików w archiwum ZIP bez rozpakowywania?

Danidacar
źródło
Czy można zrobić to samo dla zwykłego archiwum unixowego? (tar / gzip / bz2 / etc)
ThorSummoner
tar tvf. jeśli .gz, dodaj z. W przypadku bz2 dodaj j. O wiele więcej, sprawdź stronę podręcznika.
UtahJarhead,

Odpowiedzi:

469

lessNarzędzie jest w stanie wgląd do ziparchiwum. W rzeczywistości, jeśli spojrzysz na wyniki unzip -l zipfilei less zipfile, zobaczysz, że są one identyczne.

ayaz
źródło
98
Zauważ, że less zipfilena MacOS-X wyświetla binarną zawartość pliku, więc zamiast zawartości pliku zip widzisz dużo śmieci. Następnie powinieneś zdecydować się na `` ùnzip -l zipfile '' '
heiglandreas
10
@ayaz W jakim systemie mniej wyświetla pliki zip? Widzę komentarze mówiące, że to nie działa na MAC, Ubuntu, i tutaj używam Debiana. Debian pokazuje także binarne śmieci.
Dr Beco,
12
W Ubuntu spróbuj view [zipfile].
Samuel Lampa
4
ŹLE. unzip -l działa dobrze, aby wyświetlać pliki w archiwum zip, ale w wielu przypadkach less podaje zawartość binarną i to jest oczywiście bałagan.
Arturas M
17
Musisz lesspipezainstalować pomocnika, aby włączyć obsługę plików zip za mniej. Jest standardem w wielu systemach Linux, ale nie w OSX, ale można go zainstalować za pomocą brew.
pimlottc
112

Próbować unzip -l files.zip | less

Zobacz także man unzipwięcej opcji

Ken Ratanachai S.
źródło
6
Aby pominąć lesspolecenie, możesz pominąć potok . Jest to jednak świetny pomysł w dużej kolekcji plików.
omar
65

Aby wyświetlić listę plików zip:

zipinfo -1 myzipfile.zip

Aby uzyskać szczegółowe dane wyjściowe:

zipinfo myzipfile.zip
kinORnirvana
źródło
7
Dobra odpowiedź, nie musisz analizować danych wyjściowych, aby uzyskać nazwy plików.
Antoine Pelisse
34

Proszę użyć

vim ZIP_FILE_NAME

za to samo. Jest to prosty i łatwy do zapamiętania.

Rajasekhar Tolety
źródło
5
Fajnie, pozwala to również otwierać pojedyncze pliki w archiwum bez rozpakowywania
user3885927
Zupełnie nieoczekiwany i niezwykle przydatny! Dzięki!
Pierre
Właściwie: to nie zadziała, jeśli unzipnie jest zainstalowane w systemie. Poza tym świetnie!
sjas
13

Można dokonać zip pojawiają się jako katalogu (w której używasz cd, lsitp) poprzez zamontowanie go na bezpiecznik-zip wirtualnym systemie plików.

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

Kolejnym odpowiednim systemem plików FUSE jest AVFS . Tworzy widok całej hierarchii katalogów, w której wszystkie archiwa mają powiązany katalog (ta sama nazwa z #dołączoną na końcu), który wydaje się zawierać zawartość archiwum.

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

Wiele współczesnych menedżerów plików (np. Nautilus, Dolphin) pokazuje zawartość archiwum w przejrzysty sposób.

AVFS jest tylko do odczytu. Fuse-zip jest do odczytu i zapisu, ale uważaj, że zmiany są zapisywane tylko do pliku zip w momencie odmontowania, więc nie zaczynaj odczytywania archiwum, oczekując, że zostanie zmodyfikowane, dopóki nie fusermount -upowróci.

Gilles
źródło
Fajnie, Giles. Dzięki. Po prostu: czy można dodać do niego pliki, po prostu „cp” ing w katalogu?
Dr Beco,
@DrBeco Z bezpiecznikiem, tak. Z avfs, nie.
Gilles,
9

Przynajmniej w Ubuntu, najłatwiejszym poleceniem jest:

view [zipfile]

Spowoduje to otwarcie listy plików w standardowym edytorze tekstu (nano, vim itp.).

Samuel Lampa
źródło
2

To faktycznie unzip -l file.zip | grep "search"lub jeśli masz dużo plików

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

Aktualizacja: zmieniono z „-p” na „-l” w celu wyszukiwania plików.

Obrabować
źródło
2

Jeśli jesteś bardziej zorientowany graficznie, Midnight Commander może również przeglądać pliki zip, jakby były zwykłymi katalogami.

Charles Burge
źródło
1

Bardziej kompleksowe rozwiązanie: vim || emacs

Poprzednia odpowiedź @kinORnirvana jest moją ulubioną do stworzenia pliku z zawartością archiwum zip.

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

Jednak polecam vim lub emacs (nie nano), jeśli chcesz przeglądać plik archiwum, a nawet przeglądać zawartość pliku w nim zawartego.

vim archive.zip

To podejście działa również z innymi formatami archiwów:

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

Z vimem lub emacsem możesz:

  • przeglądaj strukturę katalogów pliku archiwum.
  • wyświetl zawartość dowolnego pliku w pliku archiwum.

wprowadź opis zdjęcia tutaj

ePi272314
źródło
0

(yaa) Jeszcze inna odpowiedź:

Alias ​​tego polecenia:

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

i możesz użyć, vless file.zipaby skorzystać z vi(lub vim) mniej skryptu.

(również dobrze zastąpić mniej, aby można było mieć kolory)

Dr Beco
źródło
1
less -R nie obsługują kolory ANSI.
Sylvain Leroux