La extracción de un archivo tar.gz devuelve: "Esto no parece un archivo tar".

29

Tengo un archivo tar.gz y quiero extraerlo usando la terminal. Usé los siguientes comandos: tar tvzf ldtp_3.5.0.orig.tar.gzy tar -xvzf ldtp_3.5.0.orig.tar.gz. Sin embargo, obtengo el mismo resultado para ambos archivos:

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

La salida del comando de archivo muestra que es un archivo gzip:

$ file ldtp_3.5.0.orig.tar.gz 
ldtp_3.5.0.orig.tar.gz: gzip compressed data, from Unix

Puedo extraerlo usando el botón derecho -> Extraer, pero quiero hacerlo usando la terminal. ¿Puede alguien decirme cómo hacer eso?

TheRookierLearner
fuente

Respuestas:

38

Al observar el error que está viendo, junto con el hecho de que realmente puede descomprimirlo, dice que el archivo es un archivo TAR / Gzip genuino, pero tal vez no se cree un TAR inmediato después del Gzip.

Es decir, si descargaste esto desde un servidor web, a veces la compresión Gzip se aplica al contenido web en el nivel del servidor para acelerar la descarga de contenido. Pero si no se configura correctamente en el servidor para ignorar contenido ya comprimido como este, puede inadvertidamente duplicar archivos Gzip.

Con eso en mente, vería si simplemente lo descomprimiera de la línea de comando para ver qué sucede. Use un comando como este:

gzip -d ldtp_3.5.0.orig.tar.gz

Y vea cuál es el archivo resultante. Tengo un presentimiento extraño después de ejecutar ese comando, no verá ldtp_3.5.0.orig.tarun archivo en el directorio, sino un archivo llamado como la fuente ldtp_3.5.0.orig.tar.gz, pero ¿tal vez con modificaciones modificadas? Si ese es el caso, es realmente doble Gzipped. Entonces, en este punto, después de ese desempaquetado inicial, puede ejecutar el tarcomando que tiene de esta manera:

tar -xvzf ldtp_3.5.0.orig.tar.gz

Y ahora debería descomprimir correctamente el archivo TAR completo.

Otra forma de hacer algo similar al proceso de dos pasos es canalizar el resultado de gzipque tarde esta manera:

gzip -dc ldtp_3.5.0.orig.tar.gz | tar -xvzf -

El cen el gzip, así como el -al final del comando es la clave:

  • La copción para gziple indicará gzipdescomprimir a la secuencia de salida estándar.
  • El -al final de los tarmedios de comando “utilice la entrada estándar.” Por lo tanto, junto con la de la -cde gzipla tubería tomará la salida estándar flujo canalizado a ella desde gzipy conecte de que a la entrada estándar en tar.
JakeGould
fuente
1
Intenté el primer comando gzip -d ldtp_3.5.0.orig.tar.gzy (curiosamente) obtuve un .tararchivo. Sin embargo, cuando lo intenté tar -xvf ldtp_3.5.0.orig.tar, recibí un error que decía: tar: v: Cannot open: No such file or directory tar: Error is not recoverable: exiting now
TheRookierLearner
@TheRookierLearner Entonces, ¿qué sucede si fuera a hacer gzip -d ldtp_3.5.0.orig.taren el ldtp_3.5.0.orig.tar?
JakeGould
Lo intenté gzip -d ldtp_3.5.0.orig.tar.gzy recibí el mensaje gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored gzip: on.gz: No such file or directory gzip: the.gz: No such file or directory gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored . ¡Después de esto lo intenté tar -xvzf ldtp_3.5.0.orig.tary funcionó! ¡Gracias una tonelada!
TheRookierLearner