Leggi il contenuto di un file zippato senza estrazione?


153

Come posso leggere il contenuto di un determinato file in un archivio senza estrarre il .zip in cui è contenuto? Sto usando la riga di comando di Linux.

Una domanda precedente pone sulla visualizzazione della directory dell'archivio. Ma per me non è sufficiente vedere solo un elenco dei file nell'archivio, ho bisogno di vedere il contenuto di un file nell'archivio.



@ fixer1234 (e altri): la domanda collegata chiede: "Come posso visualizzare i file in un archivio ZIP?" AFAIC, questa è la stessa domanda di "Come posso vedere il contenuto di un file ...?" È un peccato che molti di le persone che hanno risposto a questa domanda lo hanno interpretato come "Come posso visualizzare la directory dell'archivio?" Tuttavia, la risposta di Gilles (naturalmente) e la risposta di Rajasekhar Tolety (apparentemente) a quella domanda forniscono risposte a questa domanda.
Scott,

1
@Scott, forse dovremmo capire come unire le due domande in modo che entrambi gli argomenti siano trattati in uno o riconcentrare l'altro in modo che riguardi chiaramente la directory e quindi spostare le risposte tra i due luoghi per abbinare le domande. In questo momento, entrambi sono un miscuglio.
fixer1234,

@ fixer1234: sono d'accordo, fino a un certo punto. I moderatori ci dicono sempre che i duplicati sono una buona cosa, perché forniscono una maggiore superficie di esposizione ai motori di ricerca (cioè, maggiori possibilità che una ricerca trovi una delle domande). Ma c'è il problema : se un utente trova una delle domande e il collegamento non è ovvio (e nessuno guarda gli elenchi delle domande "collegate" e "correlate" - almeno non seguaci casuali dei risultati di ricerca), quindi il l'utente ha trovato solo una frazione delle risposte. DavidPostill ha espresso il voto finale per riaprire questa domanda; forse dovresti parlare con lui.
Scott,

@Scott - Dato che l'interrogatore della domanda ha contrassegnato la risposta "Come posso visualizzare la directory dell'archivio?" Come accettato, devo pensare che era probabilmente l'intento della domanda. Sfortunatamente, è formulato in modo ambiguo in modo tale che potrebbe significare entrambe le interpretazioni.
M. Justin,

Risposte:


198

unzip -l archive.zip elenca il contenuto di un archivio ZIP per assicurarsi che il file sia all'interno.

Utilizzare l' -copzione per scrivere il contenuto dei file con nome su stdout (schermo) senza decomprimere l'intero archivio.

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

Per questo tipo di operazione installo sempre l'output less, altrimenti l'intero file passa in alto sullo schermo prima di poterlo leggere.

BTW zcat è ottimo per visualizzare i contenuti dei file .gz senza prima decomprimerli.


8
Almeno in Ubuntu, less è in qualche modo configurato per farlo di default - quindi less archive.zipmostra effettivamente l'elenco dei file.
aviv

1
bzcat per visualizzare i contenuti dei file bz2 senza prima decomprimerli ...
Justin E

3
unzip -c mostra anche il nome del file e alcuni messaggi extra (inviandoli a stdout). L'uso di -p invece invia solo il file in formato binario. È più utile per le tubazioni
Juan Calero,

Con il tuo $LESSOPENset su lesspipe, puoi semplicemente less foo.gzvisualizzare i contenuti decompressi. (@aviv: questa è la stessa cosa che consente less foo.zipdi convogliarsi unzip -l foo.zipin se stesso).
Peter Cordes,

unzip -c archive.zip '*' | lessfa quello che stavo cercando: cat il contenuto dell'archivio zip.
Peter Cordes,

4

zipinfoè un altro strumento che potresti usare, questo è utile se sei su un sistema bloccato dove unzipnon è permesso.


4

Se stai solo cercando di visualizzare le immagini all'interno degli archivi, è possibile utilizzare Comix o più recente MComix per vedere le immagini dentro .zip, .rar, .cbr, e .cbzfile senza l'estrazione.


2

Inizia Emacsdalla riga di comando e apri i tuoi file zip con la Zip-Archivemodalità. Senza alcuna sintonia Emacs / elisp (i nuovi utenti generalmente temono), vedrai i dettagli del file come da zipinfo: modalità, lunghezza, data, ora

Quindi, sarai in grado di aprire i file nei buffer e persino salvare le modifiche nell'archivio, con collegamenti standard:

  • Immettere un nome file nell'elenco per aprirlo
  • Modifica e salva con Ctrl-x Ctrl-s
  • Kill buffer Ctrl-kper tornare al buffer di archiviazione e andare avanti

In Zip-Archivebuffer, utilizzare Ctrl-h mper ottenere tutti i collegamenti disponibili nella visualizzazione Guida.

Spero che questo possa portarti a scoprire le fantastiche funzionalità di Emacs



0

Ho trovato less archive.zipil modo più semplice per farlo.


2
less archive.zip non mostra il contenuto di un file zippato, mostra solo il contenuto di un archivio zippato .
Karel,

Grazie per il chiarimento, @karel
RobertMyles,

Penso che quello che stai davvero cercando di fare sarebbe lo stesso della risposta di Danielcraigie.
karel

-1

Se il file è incluso nell'archivio zip, è necessario estrarre solo quel file dall'archivio (potrebbe dipendere dal tipo di archivio, alcuni archivi non possono estrarre i file separatamente)


Sì, ma puoi estrarre su stdout e reindirizzare direttamente in un cercapersone.
Peter Cordes,

Questa non è una risposta tecnica, è più probabile da un politico o un avvocato. Sii più specifico! (mostra il comando per esempio)
Hola Soy Edu Feliz Navidad,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.