Cómo comprimir y extraer archivos usando el comando tar en Linux


El comando tar en Linux se usa a menudo para crear archivos .tar .gz o .tgz. Este comando tiene un gran número de opciones, pero solo necesita recordar algunas letras para crear rápidamente archivos con tar. Con el comando tar también puede extraer los archivos resultantes.
comando tar linux

El comando tar incluido con las distribuciones de Linux tiene compresión integrada. Puede crear un archivo .tar y luego comprimirlo con compresión gzip o bzip2 en un solo comando. Es por eso que el archivo resultante es un archivo .tar.gz o un archivo .tar.bz2.

Comprimir una carpeta completa o un solo archivo usando el comando tar

Utilice el siguiente comando para comprimir completamente una carpeta o para comprimir un solo archivo en Linux. También comprimirá las otras carpetas que se encuentran dentro de la carpeta que especifique, es decir, funciona recursivamente.

tar -czvf nuevo-nombre-de-directorio-a-comprimir.tar.gz /ruta/al/directorio-o-archivo

Esto es lo que realmente significa esos parametros:

  • -c: Crear un archivo.
  • -z: comprime el archivo con gzip.
  • -v: Muestra el progreso en el terminal mientras se crea el archivo, también conocido como modo "detallado".(verbose) El v es siempre opcional en estos comandos, pero es útil.
  • -f: Permite especificar el nombre del archivo.

Digamos que usted tiene un directorio llamado "personal" en el directorio actual y desea guardarlo en un archivo llamado archivo.tar.gz. Ejecutaría el siguiente comando:

tar -czvf archivo.tar.gz personal

tar linux

O, digamos que en el sistema actual hay un directorio en /usr /local/documentos, y desea comprimir este directorio en un archivo llamado archivo.tar.gz. Ejecutaría el siguiente comando:

tar -czvf archivo.tar.gz /usr/local/documentos

Comprimir varias carpetas o archivos a la vez usando el comando tar

Mientras que tar se utiliza con frecuencia para comprimir un único directorio, también se puede utilizar para comprimir varias carpetas, o  varios archivos individuales o ambos. Sólo proporcione una lista de archivos y/o carpetas en lugar de uno solo. Por ejemplo, supongamos que usted desea comprimir la carpeta /home/comofriki/Descargas, la carpeta /home/comofriki/Imágenes y el archivo /home/comofriki/Documentos/notas.odt. Debe ejecutar el siguiente comando:

tar -czvf archivo.tar.gz /home/comofriki/Descargas /home/comofriki/Imágenes /home/comofriki/Documentos/notas.odt

Sólo tiene relacionar las carpetas y/o archivos que desea comprimir.

comprimir tar gz

Excluir directorios y archivos con el comando tar

En algunos casos, es posible que desee comprimir un directorio por completo, pero a su vez no desea incluir ciertos archivos y directorios. Puede hacerlo agregando un --exclude para cada carpeta o archivo que desee excluir.

Por ejemplo, supongamos que desea comprimir /home/linux, pero no desea comprimir los directorios /home/linux/Descargas y /home/linux/.cache. Así es como debes hacerlo:

tar -czvf archivo.tar.gz /home/linux --exclude=/home/linux/Descargas --exclude=/home/linux/.cache

comprimir tar linux

El parametro --exclude  es muy potente. No solo toma nombres de carpetas y archivos, sino que acepta patrones. Hay mucho más que puedes hacer con él. Por ejemplo, puede comprimir un directorio completo y excluir todos los archivos .mp4 con el siguiente comando:

tar -czvf archivo.tar.gz /home/comofriki --exclude=*.mp4

Usar la compresión bzip2 con el comando tar

Mientras que la compresión gzip se usa con más frecuencia para crear archivos .tar.gz o .tgz, tar también soporta la compresión bzip2. Esto le permite crear archivos comprimidos con bzip2, a menudo denominados archivos .tar.bz2, .tar.bz o .tbz. Para ello, basta con reemplazar -z por gzip en los comandos aquí con -j para bzip2.

Gzip es más rápido, pero generalmente comprime un poco menos, por lo que obtendrá un archivo algo mayor. Bzip2 es más lento, pero se comprime un poco más, por lo que se obtiene un archivo algo más pequeño. Gzip es también más común, con algunos sistemas Linux simplificados incluyendo el soporte gzip por defecto, pero no el soporte bzip2. En general, sin embargo, gzip y bzip2 son prácticamente la misma cosa y ambos funcionarán de manera similar.

Por ejemplo, en lugar del primer ejemplo que proporcionamos para comprimir la carpeeta "sistemas", ejecutamos el siguiente comando:

tar -cjvf archivo.tar.bz2 sistemas

tar comando

Extraer un archivo usando el comando tar

Una vez que tenga un archivo, puede extraerlo con el comando tar. El siguiente comando extraerá el contenido de archivo.tar.gz al directorio actual.

tar -xzvf archivo.tar.gz

descompactar tar gz

Es el mismo comando que usamos anteriormente para creación de archivos, excepto que el modificador -x reemplaza el modificador -c. Esto especifica que desea extraer un archivo en lugar de crear uno.

Es posible que desee extraer el contenido del archivo a un directorio específico. Puede hacerlo agregando el parametro -C (mayuscula) al final del comando. Por ejemplo, el siguiente comando extraerá el contenido del archivo archivo.tar.gz al directorio / tmp.

tar -xzvf archivo.tar.gz -C /tmp

extraer tar gz

Si el archivo es un archivo bzip2 comprimido, reemplace la "z" del comando anterior por una "j".

Este es el uso más simple posible del comando tar. El comando incluye un gran número de opciones adicionales, por lo que no podemos enumerarlas todas aquí. Para más información. Ejecute el comando info tar en el shell para ver la página de información detallada del comando tar. Pulse la tecla q para salir de la página de información cuando haya terminado. También puede leer el manual de tar en línea.

Si está utilizando un escritorio gráfico Linux, también podría usar la utilidad de compresión de archivos o el administrador de archivos incluido con su escritorio para crear o extraer archivos .tar. En Windows, puede extraer y crear archivos .tar con la utilidad gratuita 7-Zip.