🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

¿Cómo comprimir y descomprimir archivos en Linux? (tar, gzip, zip)

Actualizado el 11 de abril de 2026

¿Por qué es importante comprimir archivos en un servidor Linux?

Si administras un servidor, ya sea para hosting, una aplicación web o una base de datos, tarde o temprano necesitarás comprimir archivos. Las razones más comunes son:

  • Ahorrar espacio en disco: Los logs, las copias de seguridad y los archivos estáticos (imágenes, vídeos) ocupan mucho espacio. Comprimirlos puede reducir su tamaño hasta en un 80%.
  • Transferir archivos más rápido: Un archivo comprimido pesa menos, por lo que tarda menos en subirse o descargarse mediante FTP o SCP.
  • Crear copias de seguridad (backups): Es la práctica estándar para empaquetar un directorio completo (por ejemplo, /var/www/html) en un solo archivo fácil de mover y almacenar.
  • Agrupar muchos archivos en uno solo: En lugar de descargar 500 archivos sueltos, descargas un único .tar.gz.

La buena noticia es que Linux incluye herramientas de serie para hacer esto. Las tres más importantes son tar, gzip y zip. A continuación te explico cómo usarlas paso a paso, con ejemplos prácticos que puedes aplicar hoy mismo.


Conceptos básicos: ¿Qué es tar, gzip y zip?

Antes de lanzarnos a los comandos, es importante entender la diferencia, porque es la causa del 90% de las confusiones.

  • tar: No comprime, solo empaqueta. Junta muchos archivos y carpetas en un solo archivo (como una caja de cartón). El resultado es un archivo .tar que pesa prácticamente lo mismo que la suma de los originales.
  • gzip: Es un compresor. Coge un único archivo (por ejemplo, un .tar) y lo comprime. El resultado es un archivo .gz. Al combinarlos, obtenemos el famoso .tar.gz (también llamado "tarball").
  • zip: Hace ambas cosas a la vez: empaqueta y comprime. Es el formato más común en Windows y macOS, y Linux también lo soporta perfectamente.

En resumen: tar empaqueta, gzip comprime, y zip hace las dos cosas. En la práctica, casi siempre usarás tar con la opción -z para que también comprima con gzip.


Cómo comprimir archivos con tar y gzip (comando tar gzip)

Esta es la combinación más usada en servidores Linux. Para crear un archivo comprimido con comandos tar gzip, usa la siguiente sintaxis:

tar -czvf nombre-del-archivo.tar.gz /ruta/al/directorio/

Vamos a desglosar las opciones para que no sea un jeroglífico:

  • -c: create (crear un nuevo archivo).
  • -z: gzip (comprimir con gzip).
  • -v: verbose (mostrar el progreso en pantalla, es opcional pero útil).
  • -f: file (especificar el nombre del archivo resultante).

Ejemplo práctico: comprimir una web completa

Imagina que quieres hacer un backup tar linux de tu sitio web alojado en /var/www/midominio.com. El comando sería:

tar -czvf backup-midominio.tar.gz /var/www/midominio.com

Al ejecutarlo, verás una lista de todos los archivos que se están añadiendo. Al final, tendrás un archivo llamado backup-midominio.tar.gz en el directorio donde ejecutaste el comando.

Comprimir varios directorios a la vez

Si necesitas incluir más de una carpeta o archivo, solo tienes que listarlos uno detrás de otro:

tar -czvf backup-completo.tar.gz /var/www/midominio.com /etc/nginx /var/log/midominio

Excluir archivos innecesarios

Es muy común querer excluir carpetas pesadas que no necesitas en el backup, como node_modules o cache. Usa la opción --exclude:

tar -czvf backup-midominio.tar.gz --exclude='node_modules' --exclude='cache' /var/www/midominio.com

[TIP] Si vas a hacer backups de forma recurrente, te recomiendo añadir la fecha al nombre del archivo: backup-midominio-$(date +%Y-%m-%d).tar.gz. Así tendrás un historial ordenado.


Cómo descomprimir archivos tar.gz en Linux

Descomprimir es igual de sencillo. Solo cambia la opción -c por -x (extract). La sintaxis básica es:

tar -xzvf nombre-del-archivo.tar.gz
  • -x: extract (extraer).
  • -z: descomprime con gzip.
  • -v: muestra los archivos mientras se extraen.
  • -f: nombre del archivo.

Descomprimir en un directorio específico

Por defecto, extrae los archivos en el directorio actual. Si quieres que lo haga en una carpeta concreta, usa -C (mayúscula):

tar -xzvf backup-midominio.tar.gz -C /home/usuario/restauracion/

Descomprimir solo algunos archivos

Si no quieres extraer todo el tarball, puedes listar el contenido primero:

tar -tzvf backup-midominio.tar.gz

Ese comando te mostrará todos los archivos sin extraerlos. Para extraer solo uno, por ejemplo index.php:

tar -xzvf backup-midominio.tar.gz var/www/midominio.com/index.php

[WARNING] Ojo con las rutas dentro del tar. Si al comprimir usaste una ruta absoluta (como /var/www/midominio.com), al descomprimir se restaurará esa misma ruta. Si usaste una relativa (como midominio.com), se extraerá en tu directorio actual. Para evitar sustos, en los backups siempre es mejor usar rutas relativas.


Cómo comprimir y descomprimir con zip en Linux

Aunque tar.gz es el estándar en Linux, el formato zip es imprescindible si tienes que intercambiar archivos con usuarios de Windows o macOS. La herramienta se llama zip y, si no la tienes instalada, puedes hacerlo con:

sudo apt install zip unzip    # En Debian/Ubuntu
sudo yum install zip unzip    # En CentOS/RHEL

Comprimir archivos en zip

Para comprimir archivos servidor con zip, usa:

zip -r nombre-del-archivo.zip /ruta/al/directorio/
  • -r: recursive, incluye todas las subcarpetas. Es imprescindible para directorios.

Ejemplo: comprimir una carpeta con zip

zip -r mi-web.zip /var/www/midominio.com

Añadir archivos a un zip existente

Si quieres añadir más archivos sin rehacer el zip:

zip -r mi-web.zip /var/www/otra-carpeta

Comprimir con contraseña

Para proteger el zip con contraseña (muy útil para backups con datos sensibles):

zip -r -P mi-clave-secreta backup.zip /var/www/midominio.com

[TIP] La opción -P es visible en el historial del shell. Si te preocupa la seguridad, usa -e para que te pida la contraseña de forma interactiva.

Descomprimir zip en Linux

Para descomprimir zip linux, el comando es igual de simple:

unzip nombre-del-archivo.zip

Descomprimir en un directorio concreto

unzip nombre-del-archivo.zip -d /ruta/donde/quiero/extraer/

Ver el contenido sin extraer

unzip -l nombre-del-archivo.zip

Comparativa rápida: ¿Cuándo usar tar.gz y cuándo zip?

Para que lo tengas claro de un vistazo:

SituaciónHerramienta recomendadaMotivo
Backup de un sitio web en tu servidortar -czvfMejor compresión, preserva permisos y enlaces simbólicos.
Enviar archivos a un cliente de WindowszipFormato nativo en Windows, no necesita programas extra.
Comprimir logs antiguosgzip (solo)Los logs son un único archivo, no necesitas empaquetar.
Migrar un servidor completotar -czvfPuedes incluir permisos, propietarios y estructura exacta.

Trucos avanzados para comprimir archivos en servidores

1. Comprimir con máxima compresión

Si el espacio es crítico, puedes usar bzip2 (opción -j en tar) que comprime más que gzip, aunque tarda más:

tar -cjvf backup.tar.bz2 /var/www/midominio.com

2. Comprimir y transferir en un solo paso

Puedes combinar tar con SSH para hacer un backup y enviarlo a otro servidor sin guardarlo en disco:

tar -czvf - /var/www/midominio.com | ssh usuario@otro-servidor "cat > /backups/backup.tar.gz"

3. Comprimir solo archivos modificados en los últimos días

Muy útil para backups incrementales:

tar -czvf backup-reciente.tar.gz $(find /var/www/midominio.com -name "*.php" -mtime -7)

Errores comunes y cómo solucionarlos

"gzip: stdout: No space left on device"

El disco donde estás comprimiendo está lleno. Libera espacio o comprime en otra partición.

"tar: Exiting with failure status due to previous errors"

Normalmente significa que algún archivo cambió durante la compresión. No es grave, pero el backup puede ser inconsistente. Para evitarlo, para los servicios que escriben archivos (como MySQL) antes de hacer el backup.

"unzip: cannot find zipfile directory"

El archivo no es un zip válido, o está corrupto. Intenta descargarlo de nuevo.


Preguntas frecuentes (FAQ)

¿Cómo comprimir una carpeta sin incluir la ruta completa?

Entra primero en el directorio padre y comprime con el nombre de la carpeta:

cd /var/www
tar -czvf mi-web.tar.gz midominio.com

Así el tar contendrá midominio.com/ en lugar de var/www/midominio.com/.

¿Cómo comprimir varios archivos en un solo tar.gz?

Solo tienes que listarlos:

tar -czvf mis-archivos.tar.gz archivo1.txt archivo2.log archivo3.conf

¿Cómo comprimir un archivo individual con gzip?

gzip archivo.log

Esto reemplazará archivo.log por archivo.log.gz. Para descomprimir: gunzip archivo.log.gz.

¿Cómo saber el tamaño de un archivo comprimido sin descomprimirlo?

du -sh backup.tar.gz

¿Puedo comprimir y descomprimir desde un panel de control como Syspanel?

Sí, si usas un panel de gestión como Syspanel (antes conocido como HestiaCP), puedes acceder a través del puerto 2106 (por ejemplo, https://tu-servidor:2106). En su gestor de archivos, encontrarás botones para comprimir y descomprimir archivos en formatos .tar.gz y .zip sin necesidad de usar la terminal. Sin embargo, para backups avanzados o automatizados, los comandos que te he enseñado son mucho más potentes y flexibles.

¿Cuál es la mejor opción para hacer backups automáticos?

Combina tar con cron. Por ejemplo, para hacer un backup diario a las 3 de la madrugada:

crontab -e

Y añade esta línea:

0 3 * * * tar -czvf /backups/mi-web-$(date +\%Y-\%m-\%d).tar.gz /var/www/midominio.com

Resumen final

Comprimir y descomprimir archivos en Linux es una habilidad básica pero esencial para cualquier administrador de servidores. Con solo tres comandos (tar, gzip y zip), puedes:

  • Crear backup tar linux completos de tus webs y bases de datos.
  • Comprimir archivos servidor para transferirlos rápidamente.
  • Descomprimir zip linux que te envíen clientes o colaboradores.
  • Automatizar todo con cron y scripts.

Mi recomendación: empieza usando tar -czvf para tus backups diarios y zip para intercambiar archivos con otros sistemas. En menos de una semana, lo harás sin pensar. Y si tienes un panel como Syspanel (puerto 2106), úsalo para tareas puntuales, pero no dependas de él para backups críticos.

¿Tienes alguna duda concreta sobre algún comando? Déjala en los comentarios y te ayudaré a resolverla.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel