¿Leer el contenido de un archivo comprimido sin extracción?


153

¿Cómo puedo leer el contenido de un archivo en particular en un archivo sin extraer el .zip que contiene? Estoy usando la línea de comando de Linux.

Una pregunta anterior se refiere a ver el directorio del archivo. Pero para mí no es suficiente ver solo una lista de los archivos en el archivo, necesito ver el contenido de un archivo en el archivo.



@ fixer1234 (y otros): la pregunta vinculada pregunta : "¿Cómo puedo ver los archivos en un archivo ZIP?" AFAIC, esa es la misma pregunta que "¿Cómo puedo ver el contenido de un archivo ...?" Es lamentable que muchos de las personas que respondieron esa pregunta la interpretaron como "¿Cómo puedo ver el directorio del archivo?" Sin embargo, la respuesta de Gilles (naturalmente) y la respuesta de Rajasekhar Tolety (aparentemente) a esa pregunta proporcionan respuestas a esta pregunta.
Scott

1
@ Scott, tal vez deberíamos descubrir cómo fusionar las dos preguntas para que ambos temas estén cubiertos en uno, o reenfocar el otro para tratar claramente sobre el directorio y luego mover las respuestas entre ambos lugares para que coincidan con las preguntas. En este momento, ambos son una mezcolanza.
Fixer1234

@ Fixer1234: Estoy de acuerdo, hasta cierto punto. Los moderadores siempre nos dicen que los duplicados son algo bueno, ya que proporcionan una mayor superficie de exposición a los motores de búsqueda (es decir, más posibilidades de que una búsqueda encuentre una de las preguntas). Pero está el problema: si un usuario encuentra una de las preguntas, y el vínculo no es obvio (y nadie mira las listas de preguntas "Vinculadas" y "Relacionadas", al menos no seguidores aleatorios de los resultados de búsqueda), entonces el El usuario ha encontrado solo una fracción de las respuestas. DavidPostill emitió el voto final para reabrir esta pregunta; Tal vez deberías hablar con él.
Scott

@Scott: dado que el autor de la pregunta marcó la respuesta "¿Cómo puedo ver el directorio del archivo?" Como aceptada, tengo que pensar que esa fue la intención de la pregunta. Desafortunadamente, está redactado de manera ambigua de tal manera que podría significar cualquier interpretación.
M. Justin

Respuestas:


198

unzip -l archive.zip enumera el contenido de un archivo ZIP para garantizar que su archivo esté dentro.

Use la -copción para escribir el contenido de los archivos con nombre en stdout (pantalla) sin tener que descomprimir todo el archivo.

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

Para este tipo de operación siempre canalizo la salida less, de lo contrario, todo el archivo sale volando por la pantalla antes de que pueda leerlo.

BTW zcat es ideal para ver el contenido de los archivos .gz sin tener que descomprimirlos primero.


8
Al menos en Ubuntu, menos está configurado de alguna manera para hacer esto de manera predeterminada, por lo que en less archive.ziprealidad muestra la lista de archivos.
aviv

1
bzcat para ver el contenido de los archivos bz2 sin tener que descomprimirlos primero ...
Justin E

3
descomprimir -c también muestra el nombre del archivo y algunos mensajes adicionales (enviándolos a stdout). El uso de -p solo envía el archivo en formato binario. Eso es más útil para tuberías
Juan Calero

Con su $LESSOPENconjunto a lesspipe, puede less foo.gzver los contenidos descomprimidos. (@aviv: esto es lo mismo que permite less foo.zipcanalizarse unzip -l foo.zipen sí mismo).
Peter Cordes

unzip -c archive.zip '*' | lesshace lo que estaba buscando: cat el contenido del archivo zip.
Peter Cordes

4

zipinfoes otra herramienta que puede usar, esto es útil si está en un sistema bloqueado donde unzipno está permitido.


4

Si usted está buscando para ver las imágenes en el interior de los archivos, puede utilizar Cómic o más reciente mcomix para ver imágenes en el interior .zip, .rar, .cbr, y .cbzarchivos sin extraer.


2

Comience Emacsen la línea de comandos y abra sus archivos zip con el Zip-Archivemodo. Sin ningún ajuste de Emacs / elisp (los nuevos usuarios generalmente temen), verá detalles del archivo como zipinfo: modos, longitud, fecha, hora

Luego, podrá abrir archivos en buffers e incluso guardar sus cambios en el archivo, con accesos directos estándar:

  • Ingrese el nombre de un archivo en la lista para abrirlo
  • Edita y guarda con Ctrl-x Ctrl-s
  • Mata el búfer Ctrl-kpara volver al búfer de archivo y continuar

Cuando esté en el Zip-Archivebúfer, úselo Ctrl-h mpara obtener todos los accesos directos disponibles en la Vista de ayuda.

Espero que esto te lleve a descubrir las increíbles funciones de Emacs



0

He encontrado less archive.zipque es la forma más fácil de hacer esto.


2
less archive.zip no muestra el contenido de un archivo comprimido, solo muestra el contenido de un archivo comprimido .
karel

Gracias por la aclaración, @karel
RobertMyles

Creo que lo que realmente estás tratando de hacer sería lo mismo que la respuesta de danielcraigie.
karel

-1

Si el archivo está incluido en el archivo zip, es necesario extraer solo ese archivo del archivo (puede depender del tipo de archivo, algunos archivos no pueden extraer archivos por separado)


Sí, pero puede extraer a stdout y canalizar directamente a un buscapersonas.
Peter Cordes

Esta no es una respuesta técnica, es más probable que sea de un político o un abogado. ¡Por favor sé más específico! (muestre el comando, por ejemplo)
Hola Soy Edu Feliz Navidad
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.