Cómo descomprimir un tar.gz en Linux (untar): comandos y opciones

«Untar» no es un comando de Linux: se hace con tar y la opción de extraer. Para un archivo .tar.gz:

tar -xzvf archivo.tar.gz

Eso deja el contenido en la carpeta actual. Si quieres entenderlo para no tener que buscarlo cada vez, estas son las letras:

Qué significa cada opción

Opción Significado
x extraer
c crear un archivo
t listar el contenido sin extraer
z comprimido con gzip (.gz)
j comprimido con bzip2 (.bz2)
J comprimido con xz (.xz)
v verboso: enseña lo que va haciendo
f fichero: el nombre del archivo va justo después
C cambiar a esa carpeta antes de extraer

La f tiene que ir la última del grupo, porque lo que viene detrás es el nombre del archivo. El orden de las demás letras da igual: -xzvf y -xvzf hacen lo mismo.

Reglas para acordarse

La tabla se entiende, pero a la hora de teclear lo que funciona es una frase tonta que se quede pegada. Las mías:

  • Crear, tar -cvzf: «Cuando una Vieja Zorra Furiosa…». La primera letra decide la operación, y la c es la de crear.
  • Extraer, tar -xvzf: «eXpulsa a la Vieja Zorra Furiosa». Misma zorra, distinto verbo: se cambia solo la primera letra.
  • Listar, tar -tzf: «Tienes la Zorra Fichada»: miras qué hay dentro sin sacarla.
  • Otra carpeta, -C: «Cámbiate de Casa». Mayúscula, para no confundirla con la c de crear.
  • Compresión: z de gzip, la más habitual; j minúscula para bzip2; J mayúscula para xz, la más nueva y la que más comprime: la letra grande para el que aprieta más.
  • La f, siempre al final: la furiosa cierra la frase porque detrás va el fichero. Si escribes -xvfz, tar intentará abrir un archivo llamado z.

Con eso basta para no volver a buscarlo: primero el verbo (c, x, t), luego la compresión, la v si quieres ver lo que pasa y la f cerrando.

Los casos que se usan

# Extraer en otra carpeta (debe existir)
tar -xzvf archivo.tar.gz -C /ruta/destino

# Ver qué contiene, sin extraer
tar -tzf archivo.tar.gz

# Extraer solo un archivo o carpeta
tar -xzf archivo.tar.gz ruta/dentro/del/archivo.txt

# bzip2 y xz
tar -xjvf archivo.tar.bz2
tar -xJvf archivo.tar.xz

# Que tar detecte la compresión él solo (GNU tar al leer)
tar -xf archivo.tar.gz

Para el camino contrario, crear un archivo comprimido:

tar -czvf copia.tar.gz carpeta/
tar -czvf copia.tar.gz carpeta/ --exclude='*.log'

Errores habituales

  • gzip: stdin: not in gzip format: el archivo no es gzip aunque se llame así, o usaste z con un .tar.bz2. Comprueba con file archivo qué es de verdad.
  • tar: Error is not recoverable: exiting now: suele ser un archivo dañado o una descarga incompleta (a veces una página de error guardada con extensión .tar.gz).
  • Cannot open: No such file or directory: ruta mal escrita, o la carpeta de -C no existe: créala antes con mkdir.
  • Permission denied: extraes en una carpeta donde no puedes escribir; usa otra o sudo si sabes lo que haces.

Mi propia chuleta de siempre, con el caso de tar -cvzf y tar -xvzf, está en tar y untar en línea de comandos de Linux.

0 comentarios sobre "Cómo descomprimir un tar.gz en Linux (untar): comandos y opciones"

Sé el primero en comentar.