Crear y gestionar archivos TAR en Linux: compresión, extracción y SSH

·4 min de lectura·

tar agrupa ficheros y directorios en un archivo de archivo. Puede combinarse con compresores como gzip para reducir el tamaño, y también puede enviar el archivo por una tubería directamente a otro equipo. Esta guía cubre las operaciones habituales con ejemplos para GNU tar [1].

Antes de extraer: lista el contenido del archivo y elige un directorio de destino. Extraer en una carpeta dedicada ayuda a evitar sobrescribir ficheros por accidente.

Crear un archivo TAR comprimido

Para empaquetar el contenido de una carpeta y comprimirlo con gzip:

tar -czf copia.tar.gz -C /ruta/al/directorio .

En este ejemplo, -C hace que tar cambie al directorio indicado antes de añadir los elementos. El punto final incluye su contenido. El archivo copia.tar.gz se crea en el directorio desde el que se ejecutó el comando; usa una ruta absoluta en -f si quieres guardarlo en otro lugar.

Las opciones principales son:

  • -c: crear un archivo.
  • -z: filtrar mediante gzip.
  • -f: indicar el nombre del archivo TAR.
  • -v: mostrar los nombres procesados (opcional; omítelo en scripts si no necesitas esa salida).

Listar el contenido

Antes de extraer, puedes inspeccionar los nombres almacenados:

tar -tzf copia.tar.gz

-t lista, -z indica gzip y -f selecciona el archivo. Para ver más detalles, añade -v.

Extraer en un directorio concreto

Crea primero una carpeta vacía para la extracción y luego indica el destino con -C:

mkdir -p /ruta/de/prueba
tar -xzf copia.tar.gz -C /ruta/de/prueba

-x extrae los miembros del archivo. No ejecutes esta operación sobre una ruta con datos importantes sin revisar antes el listado: la extracción puede crear o reemplazar archivos existentes. Para archivos de origen desconocido, usa una carpeta aislada y revisa el contenido antes de moverlo a su destino definitivo [2].

Actualizar un archivo sin comprimir

GNU tar permite añadir a un archivo TAR sin comprimir las versiones más recientes de los miembros indicados:

tar -uf copia.tar fichero.txt otro-directorio/

-u compara las fechas de los miembros del archivo con las de los ficheros actuales y añade los que sean más recientes. No elimina las versiones previas: si un nombre aparece varias veces, la extracción normal recupera la última versión añadida [3].

Los archivos comprimidos como .tar.gz no se pueden modificar directamente con --update, --append o --delete. Para cambiar su contenido, crea de nuevo el archivo comprimido desde los ficheros de origen [4].

Transferir un archivo por SSH sin guardarlo localmente

Puedes crear el archivo en el origen y enviarlo por la conexión SSH para extraerlo en el destino:

tar -czf - -C /ruta/de/origen . | ssh usuario@servidor 'tar -xzf - -C /ruta/de/destino'

El destino debe existir y el usuario remoto debe tener permiso para escribir allí. El guion después de -f indica que el archivo TAR se escribe en la salida estándar; en el extremo remoto, -f - hace que tar lea desde la entrada estándar [1]. Comprueba las rutas y el espacio disponible antes de transferir una gran cantidad de datos.

En resumen

  • Usa -czf para crear un .tar.gz, -tzf para listar su contenido y -xzf para extraerlo.
  • Añade -C para controlar la ruta de origen o el directorio de extracción.
  • --update funciona con archivos TAR sin comprimir; no actualiza directamente un .tar.gz.
  • Inspecciona archivos de origen desconocido y extrae primero en un directorio aislado.

Fuentes consultadas

  1. Manual oficial de GNU tar: operaciones, archivos y salida estándar
  2. Manual oficial de GNU tar: extracción de archivos desconocidos
  3. Manual oficial de GNU tar: actualizar un archivo TAR
  4. Manual oficial de GNU tar: compresión y límites al modificar archivos comprimidos

tar

¿Te ha resultado útil?

Compártelo con tu red de contactos profesionales.

Comentarios (0)

Sé el primero en comentar.