Extraer un fichero de un paquete comprimido tar.gz

tar.gz_200pxHace poco me encontré con un fichero tar.gz de cerca de 40 Gb que tenía comprimidos un montón de ficheros de log. El caso es que sólo me interesaba un fichero de todos los que tenía el paquete, pero normalmente suelo descomprimir todo el contenido del tar.gz (tar xvzf fichero.tgz).

En este caso descomprimir los 40Gb puede ser inasumible por la cantidad de espacio que puede llegar a ocupar todo eso sin comprimir.

Lo que hice para poder extraer un único fichero fue:

1. Localizar el fichero a extraer

Con el comando tar tzf se muestra un listado de los ficheros que contiene el fichero tar.gz.

# tar tzf trinity-15-03-09.tar.gz 
trinity_20150309000036_54133_15-03-09_00
trinity_20150309000041_54134_15-03-09_00
trinity_20150309000152_54135_15-03-09_00
trinity_20150309000158_54136_15-03-09_00
trinity_20150309000313_54137_15-03-09_00
trinity_20150309000320_54138_15-03-09_00
trinity_20150309000434_54139_15-03-09_00
trinity_20150309000443_54140_15-03-09_00
trinity_20150309000556_54141_15-03-09_00
trinity_20150309000606_54142_15-03-09_00
trinity_20150309000718_54143_15-03-09_00
trinity_20150309000730_54144_15-03-09_00
trinity_20150309000839_54145_15-03-09_00
trinity_20150309000853_54146_15-03-09_00
trinity_20150309001002_54147_15-03-09_00
trinity_20150309001017_54148_15-03-09_00
trinity_20150309001126_54149_15-03-09_00
...

2. Extraer el fichero

Una vez localizado el fichero, para extraerlo habría que incluir en el programar tar la ruta en la que está comprimido. Algo de este estilo:

# tar xvzf fichero.tar.gz */ruta_al_fichero/fichero.ext

En nuestro caso, utilicé el siguiente comando:

# tar xvzf trinity-15-03-09.tar.gz trinity_20150309000718_54143_15-03-09_00

Con esto, se descomprime únicamente el fichero deseado.

También te puede interesar

3 comentarios

  • Elly 23/12/2016   Contestar →

    Hola Enrique,

    Muchas gracias, que buen post, tengo una preguntita, si quiero descomprimir solo un listado de archivos, conoces alguna forma?

    Mi archivo tiene alrededor de 400 archivos .txt solo quiero descomprimir 50 de ellos, no sé si haya alguna manera

    • Hola Elly!

      Gracias por tu comentario. Para descomprimir varios ficheros, lo fácil es que tengan algún patrón común en el nombre… esto es, por ejemplo, si el nombre tiene incluido una fecha y hora, se podrían filtrar con el patrón “*20161225_12*”.

      El comando sería algo parecido a esto:

      tar -xvzf fichero.tar.gz --wildcards --no-anchored '*patron*'

      Si no te viene el patrón, entonces la cosa se complica… probablemente tengas que ir uno a uno.

      Espero que te te valga de ayuda.

      Saludos!

  • Oscar Agacino 12/06/2017   Contestar →

    ¿como extraer desde un archivo tar comprimido sólo los archivos de un año en particular?

Dejar un comentario