Przeczytaj zawartość spakowanego pliku bez rozpakowywania?

153

Jak mogę odczytać zawartość określonego pliku w archiwum bez rozpakowywania zawartego w nim pliku .zip? Korzystam z wiersza polecenia systemu Linux.

Wcześniejsze pytanie dotyczy przeglądania katalogu archiwum. Ale dla mnie nie wystarczy zobaczyć tylko listę plików w archiwum, muszę zobaczyć zawartość pliku w archiwum.

Shrikanth
źródło
@ fixer1234 (i inne): Połączone pytanie brzmi: „Jak mogę przeglądać pliki w archiwum ZIP?” AFAIC, to samo pytanie jak „Jak mogę zobaczyć zawartość pliku…?” Niestety, wielu ludzie, którzy odpowiedzieli na to pytanie, zinterpretowali to jako „Jak mogę wyświetlić katalog archiwum?” Jednak odpowiedź Gillesa (oczywiście) i odpowiedź Rajasekhara Tolety'ego (najwyraźniej) na to pytanie dostarczają odpowiedzi na to pytanie.
Scott
1
@Scott, może powinniśmy wymyślić, jak połączyć dwa pytania, aby oba tematy zostały omówione w jednym, lub zmienić ukierunkowanie drugiego, aby wyraźnie dotyczyć katalogu, a następnie przenosić odpowiedzi między dwoma miejscami, aby dopasować pytania. W tej chwili oba są miszmaszem.
fixer1234 21.04.17
@ fixer1234: Zgadzam się, do pewnego momentu. Moderatorzy zawsze mówią nam, że duplikaty są dobrą rzeczą, ponieważ zapewniają większą powierzchnię ekspozycji w wyszukiwarkach (tj. Większe szanse, że wyszukiwanie znajdzie jedno z pytań). Ale jest ruba: jeśli użytkownik znajdzie jedno z pytań, a powiązanie nie jest oczywiste (i nikt nie patrzy na listy pytań „powiązanych” i „pokrewnych” - przynajmniej nie losowych obserwujących wyniki wyszukiwania), wówczas użytkownik znalazł tylko ułamek odpowiedzi. DavidPostill oddał ostatni głos, aby ponownie otworzyć to pytanie; może powinieneś z nim porozmawiać.
Scott
@ Scott - Biorąc pod uwagę, że pytający zaznaczył odpowiedź „Jak mogę wyświetlić katalog archiwum?” Jako zaakceptowaną, muszę pomyśleć, że taka była prawdopodobnie intencja pytania. Jest niestety niejednoznacznie sformułowany, co może oznaczać dowolną interpretację.
M. Justin

Odpowiedzi:

198

unzip -l archive.zip wyświetla zawartość archiwum ZIP, aby upewnić się, że plik jest w środku.

Użyj -copcji, aby zapisać zawartość nazwanych plików na standardowe wyjście (screen) bez konieczności rozpakowywania całego archiwum.

unzip -c archive.zip file1.txt file2.txt | less

Do tego rodzaju operacji zawsze przesyłam dane wyjściowe less, w przeciwnym razie cały plik leci w górę ekranu, zanim będzie można go odczytać.

BTW zcat doskonale nadaje się do przeglądania zawartości plików .gz bez konieczności ich wcześniejszej dekompresji.

danielcraigie
źródło
8
Przynajmniej w Ubuntu, less jest jakoś skonfigurowany do robienia tego domyślnie - więc less archive.zipfaktycznie pokazuje listę plików.
aviv
1
bzcat do przeglądania zawartości plików bz2 bez konieczności ich wcześniejszej dekompresji ...
Justin E
3
unzip -c pokazuje także nazwę pliku i kilka dodatkowych wiadomości (wysyłając je do standardowego wyjścia). Zamiast tego użycie opcji -p powoduje wysłanie pliku tylko w formacie binarnym. Jest to bardziej przydatne do orurowania
Juan Calero,
Dzięki $LESSOPENzestawowi lesspipe możesz po prostu less foo.gzwyświetlić zdekompresowaną zawartość. (@aviv: to samo, co umożliwia less foo.zipzamontowanie unzip -l foo.zipw sobie).
Peter Cordes
unzip -c archive.zip '*' | lessrobi to, czego szukałem: cat zawartość archiwum zip.
Peter Cordes
4

zipinfoto kolejne narzędzie, którego możesz użyć, jest to przydatne, jeśli korzystasz z zablokowanego systemu, w którym unzipjest to niedozwolone.

Nickolai
źródło
4

Jeśli szukasz po prostu do wyświetlenia obrazów wewnątrz archiwów, można użyć Comix lub nowszej MComix aby zobaczyć obrazy wewnątrz .zip, .rar, .cbroraz .cbzpliki bez ekstrakcji.

Kokizzu
źródło
2

Uruchom Emacsw wierszu polecenia i otwórz pliki zip w Zip-Archivetrybie. Bez strojenia Emacsa / elisp (nowi użytkownicy zwykle się boją) zobaczysz szczegóły pliku, takie jak zipinfo: tryby, długość, data, godzina

Następnie będziesz mógł otwierać pliki w buforach, a nawet zapisywać zmiany z powrotem w archiwum, korzystając ze standardowych skrótów:

  • Wpisz nazwę pliku na liście, aby go otworzyć
  • Edytuj i zapisz za pomocą Ctrl-x Ctrl-s
  • Zabij bufor, Ctrl-kaby wrócić do bufora archiwum i kontynuować

W Zip-Archivebuforze użyj, Ctrl-h maby uzyskać dostęp do wszystkich skrótów dostępnych w widoku pomocy.

Mam nadzieję, że może to doprowadzić do odkrycia niesamowitych funkcji Emacsa

Yves Martin
źródło
1

Możesz użyć vimdo wyświetlenia zawartości archiwum zip/ rar/ tar:

vim archive.zip

BTW: oto to samo pytanie.

patryk.beza
źródło
0

Odkryłem, że less archive.zipjest to najłatwiejszy sposób na zrobienie tego.

RobertMyles
źródło
2
less archive.zip nie pokazuje zawartości spakowanego pliku, pokazuje tylko zawartość spakowanego archiwum .
karel
Dzięki za wyjaśnienie, @karel
RobertMyles
Myślę, że to, co naprawdę próbujesz zrobić, byłoby tym samym, co odpowiedź danielcraigie.
karel
-1

Jeśli plik znajduje się w archiwum zip, musisz wyodrębnić tylko ten plik z archiwum (może to zależeć od typu archiwum, niektóre archiwa nie mogą wyodrębnić plików osobno)

bloger
źródło
Tak, ale możesz wyodrębnić na standardowe wyjście i przeciągnąć bezpośrednio do pagera.
Peter Cordes
To nie jest odpowiedź techniczna, bardziej prawdopodobne jest to od polityka lub radcy prawnego. Proszę być bardziej konkretnym! (pokaż na przykład polecenie)
Hola Soy Edu Feliz Navidad