Pregunta ¿Cómo se gunzip un archivo y se guarda el archivo .gz?


El comportamiento predeterminado de gunzip es eliminar el archivo .gz después de descomprimirlo.

¿Cómo evito que elimine el archivo?

Si esta funcionalidad no está incluida, ¿existe un programa alternativo que lo permita?

Estoy usando Ubuntu 9.04


208


origen


use el siguiente comando: gunzip -k - fazineroso
¿Qué gunzip tiene la opción k? No veo a nadie - Znik
@Znik, gzip / gunzip versión 1.6 y superior tiene la opción -k. - alexander barakin


Respuestas:


Estas buscando:

gzcat x.txt.gz >x.txt

los gzcat comando es equivalente a gunzip -c que simplemente escribe la secuencia de salida para stdout. Esto dejará intacto el archivo comprimido. Entonces también puedes usar:

gunzip -c x.txt.gz >x.txt

Tenga en cuenta que en algunos sistemas, gzcat también se conoce como zcat así que corra así en su lugar:

zcat x.txt.gz >x.txt

208



Gracias por la respuesta. Al crecer con pkunzip en DOS, me parece tan extraño que no hay una opción para guardar el archivo. Especialmente con una herramienta como gzip siendo ampliamente utilizada ... simplemente extraña. - Sen
FYI, en realidad no tengo gzcat. Ni mi sistema local ni el sistema en el que me metieron. Entonces, tengo que usar gunzip -c - Sen
es probable que solo sea zcat en su sistema. - user23307
Una opción adicional para mantener el archivo sería muy bueno. Por ejemplo, b (un) zip2 usa una sintaxis similar y permite simplemente agregar -k para mantener el archivo original. - schnaader
También puede agregar el alias de línea gzcat = "gunzip -c" a su .bashrc - James Kingsbery


Puedes usar el -c Opción de gunzip que escribe el resultado en stdout y luego canalícelo al archivo de su elección:

gunzip -c compressed-file.gz > decompressed-file

Más detalles sobre página de manual.


52



Por cierto, tenga en cuenta que la página de manual mencionada anteriormente enumera una opción -k, lo que significa que mantiene los archivos de entrada. Tal vez esto funcione en la versión BSD, pero no en la mía, por lo que la solución -c parece ser la correcta.


Una solución más simple es usar gunzip como un filtro como este:

gunzip < myfile.gz > myfile

30



Creo que esta es la forma más limpia desde gunzip nunca sabe qué archivo está obteniendo, todo lo que ve es una secuencia de datos, por lo que no puede alterar el archivo original. - Walf


Si en realidad es un tarball (extensión .tgz o .tar.gz), en lugar de redireccionar al archivo como todas las respuestas hasta el momento, querrás canalizarlo a tar como se muestra a continuación:

gunzip -c myfile.tar.gz | tar xvf -

para que obtengas los contenidos reales


12



o simplemente hazlo: tar xzvf myfile.tar.gz - Joakim Elofsson
cierto, pero solo si tiene GNU tar. El que viene con Solaris, por ejemplo, no admite la opción z. - Alex


Utilizar el -c opción para descomprimir el archivo a stdout. No tocará el archivo original.

gunzip -c myfile.gz > myfile

5





gzip -dk myfile.gz

O

gunzip -k myfile.gz

Comentarios:

   -k --keep    Keep (don't delete) input files during compression or decompression.

3





Gnu tar puede leer archivos gzip: tar -zxsvf myfile.tar.gz o tar -jxzvf myfile.tar.bz2 para archivos bzipped tar.


2