tar con Bash

Comando tar para Linux

Con el comando tar de Linux podemos crear de forma sencilla archivos de cinta o archivos comprimidos que contengan uno o más archivos o directorios. El nombre del comando tar proviene de «Tape Archive».

Las diferencias entre un archivo de cinta TAR y un archivo comprimido TAR, son que el archivo de cinta almacena múltiples archivos y directorios sin comprimir (manteniendo la estructura original y metadatos), mientras que el archivo comprimido ha sido comprimido adicionalmente con una utilidad de compresión para reducir su tamaño y ahorrar espacio (gzip, bzip2, etc).

El comando tar de Linux aparte de ser utilizado para comprimir y descomprimir, es muy utilizado para crear copias de seguridad y transferir archivos entre sistemas.

tar [opciones] [archivo_salida] [un_archivo] [otro_archivo]

Antes de que veamos algún ejemplo veremos algunas de las opciones disponibles para la herramienta tar de Linux. Recuerda que puedes verlas todas escribiendo en la terminal man tar.

Opciones con tar

Es muy recomendable ver mediante la opción de ayuda todas las opciones disponibles, de esta forma aumentamos la potencia de los comandos de Linux de forma increíble.

  • -c: crea un archivo de cinta.
  • -f: especifica el nombre del archivo de cinta.
  • -t: muestra el contenido de un archivo de cinta sin extraer.
  • -x: extrae los archivos de un archivo de cinta.
  • -C: especifica el directorio en el que vamos a extraer o descomprimir nuestro fichero TAR.
  • -z: comprime el archivo usando gzip.
  • -j: comprime el archivo usando bzip2.
  • -v (verbose): muestra información sobre el proceso de extracción o compresión.

Vamos a ver un ejemplo creando un archivo TAR sin comprimir, es decir, un archivo de cinta. Agruparemos varios ficheros incluidos en un directorio diccionario en un solo archivo llamado cinta.tar sin que haya compresión. Haremos uso también de la opción -v para que nos muestre información del proceso.

tar -cvf cinta.tar diccionario/

Después de crear este archivo TAR sin comprimir haremos uso del comando file para ver qué tipo de archivo hemos creado.

cinta.tar: POSIX tar archive (GNU)
Creando archivo tar sin comprimir

Podemos ver el contenido del archivo TAR recién creado sin necesidad de extraerlo haciendo uso de las opciones -tf.

tar -tf cinta.tar

Ahora vamos a extraer su contenido en un directorio nuevo. Creamos un directorio nuevo llamado extraido haciendo uso del comando mkdir de Linux. Después ejecutamos el siguiente comando:

tar -xf cinta.tar -C extraido

Le estamos indicando que extraiga (-x) el archivo con nombre (-f) cinta.tar en el directorio (-C) que acabamos de crear que se llama extraido.

Extrayendo un archivo con formato TAR en una ubicación concreta

Comprimir archivos con TAR con Linux

Cuando decidimos comprimir un grupo de archivos o directorios debemos elegir la herramienta con la que realizar la compresión. Estas son algunas de las posibilidades que tenemos: gzip, bzip2, xz, lzma y zip.

Veremos un ejemplo sencillo de compresión con cada una de ellas. Para cada uno de los ejemplos utilizaremos el directorio diccionario que dispone de varios ficheros y directorios.

Compresión de archivo tar con gzip

tar -czvf resultado.tar.gz diccionario/

Compresión de archivo tar con bzip2

tar -cjvf resultado.tar.bz2 diccionario/

Compresión de archivo tar con xz

tar -cJvf resultado.tar.xz diccionario/

Compresión de archivo tar con lzma

tar --lzma -cvf resultado.tar.lzma diccionario/

Compresión de archivo tar con zip

tar -czvf resultado.tar.zip diccionario/

Verificando las compresiones de TAR

Una vez creados vamos a realizar una búsqueda con el comando find para ver si los archivos se han creado correctamente.

find -type f -name '*.tar.*'
Listado para verificar que las diferentes compresiones TAR se han realizado correctamente. El comando usado para listar es find -type f -name '*.tar.*'

Descomprimir archivos tar con Linux

Ahora descomprimiremos todos los ficheros que hemos creado anteriormente. Vamos a darle un nombre a cada descompresión para que podamos identificarlas al final con un listado.

Crearemos con el comando mkdir algunos directorios para cada descompresión.

Descompresión de archivo gzip con tar

tar -xzf resultado.tar.gz -C diccionario/dir_gzip

Descompresión de archivo bzip2 con tar

tar -xjf resultado.tar.bz2 -C diccionario/dir_bzip2

Descompresión de archivo xz con tar

tar -xJf resultado.tar.xz -C diccionario/dir_xz

Descompresión de archivo lzma con tar

tar --lzma -xf resultado.tar.lzma -C diccionario/dir_lzma

Descompresión de archivo zip con tar

tar -xzf resultado.tar.zip -C diccionario/dir_zip

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *