Intro
Si trabajás bastante por terminal, tarde o temprano terminás moviendo logs, backups, volcados de base de datos, artefactos de build o directorios enteros que conviene comprimir antes de guardar o transferir.
Y ahí aparece una pregunta bastante práctica: ¿sigo usando gzip, me paso a xz, uso zip por compatibilidad o me conviene zstd?
En muchos casos, zstd es una respuesta muy razonable porque logra un equilibrio muy bueno entre velocidad y nivel de compresión. No siempre reemplaza a todo lo demás, pero sí vale la pena entenderlo.
¿Qué es zstd?
zstd es la herramienta de línea de comandos para Zstandard, un algoritmo de compresión sin pérdida pensado para comprimir rápido, descomprimir muy rápido y ofrecer una relación de compresión sólida.
Dicho más simple: apunta a no obligarte a elegir entre “comprime bien” y “termina este siglo”.
En Linux suele aparecer como:
zstdpara comprimir y descomprimir;unzstdcomo alias práctico para descompresión;zstdcatpara volcar contenido descomprimido a stdout.
Cómo verificar si lo tenés instalado
En muchas distros ya viene disponible en paquetes estándar. Para confirmarlo:
zstd --versionSi el comando responde con la versión, ya está.
Cómo comprimir un archivo con zstd
La forma más simple es esta:
zstd archivo.logEso genera archivo.log.zst.
Un detalle importante: en la CLI actual de zstd, el archivo original se conserva por defecto. O sea, no te borra archivo.log salvo que se lo pidas explícitamente.
También podés elegir el nivel de compresión. Por ejemplo:
zstd -3 backup.sql
zstd -9 backup.sql
zstd -19 backup.sqlLa lógica general es esta:
- niveles más bajos: comprimen más rápido;
- niveles más altos: buscan mejor ratio, pero consumen más tiempo y CPU.
En la práctica, para uso diario muchas veces alcanza con niveles bajos o medios.
Cómo descomprimir un archivo .zst
La forma más directa:
zstd -d archivo.log.zstO, si preferís el alias más legible:
unzstd archivo.log.zstEso recupera archivo.log.
Si querés enviar el resultado a un archivo específico:
zstd -d archivo.log.zst -o archivo-restaurado.logCómo ver el contenido sin descomprimir manualmente
A veces no querés restaurar el archivo entero en disco. Solo querés inspeccionarlo o pasarlo por una tubería.
Para eso sirve:
zstd -dc archivo.log.zstO el alias:
zstdcat archivo.log.zstEjemplos prácticos:
zstdcat access.log.zst | head
zstdcat dump.json.zst | jq .
zstd -dc backup.sql.zst | lessEsto es especialmente cómodo cuando trabajás con logs o dumps grandes y querés evitar pasos intermedios.
Cómo comprimir varios archivos o carpetas
Acá hay una diferencia importante: zstd comprime, pero no empaqueta múltiples archivos en un único contenedor del mismo modo que zip.
Si querés comprimir un directorio entero, lo normal es combinarlo con tar:
tar -I zstd -cf respaldo.tar.zst proyecto/Y para extraerlo:
tar -I zstd -xf respaldo.tar.zstEsta combinación (tar + zstd) es muy común porque separa dos tareas:
taragrupa archivos y directorios;zstdcomprime el stream resultante.
Si venís del mundo tar.gz o tar.xz, pensalo como la variante tar.zst.
Niveles, velocidad y multithreading
zstd permite elegir niveles de compresión entre 1 y 19, y también tiene modos más agresivos con --ultra.
Por ejemplo:
zstd -1 imagen.raw
zstd -10 imagen.raw
zstd --ultra -22 imagen.rawPero no conviene vender humo: subir el nivel no siempre vale la pena.
Si tu prioridad es terminar rápido, mover backups o comprimir artefactos grandes sin castigar tanto el CPU, zstd ya rinde muy bien con niveles modestos.
Además, soporta hilos:
zstd -T0 backup.sql-T0 le indica que use automáticamente los cores disponibles. Eso puede ser útil en archivos grandes o procesos donde querés exprimir mejor la máquina.
Cómo inspeccionar y validar archivos comprimidos
Hay dos comandos bastante útiles:
zstd -l archivo.zst
zstd --test archivo.zst-llista información del archivo comprimido;--testvalida integridad sin extraerlo a disco.
Para operaciones de backup o transferencias, esto suma bastante.
zstd vs zip
Acá conviene no mezclar objetivos.
zip es muy útil cuando necesitás:
- empaquetar varios archivos en un formato muy conocido;
- compartir algo con usuarios de Windows, macOS o entornos donde
zipviene de fábrica; - mandar un único archivo fácil de abrir con herramientas gráficas.
zstd, en cambio, brilla más como herramienta técnica en entornos Linux y flujos de infraestructura.
Entonces, si la prioridad es compatibilidad universal y conveniencia para intercambio, zip sigue teniendo mucho sentido.
Si la prioridad es compresión moderna y rápida en workflows técnicos, zstd suele ser mejor candidato.
zstd vs gzip
gzip sigue siendo ubicuo. Está en todas partes, aparece en muchísimos pipelines Unix y es un estándar de hecho para logs, artefactos y streams comprimidos.
El punto es que zstd suele ofrecer un equilibrio mejor entre tiempo y ratio.
En una prueba local muy simple sobre texto repetitivo, zstd -3 comprimió mucho más rápido que gzip. No es un benchmark universal, pero sí sirve para reforzar la idea general: Zstandard está pensado para ser muy ágil tanto al comprimir como al descomprimir.
No significa que gzip esté obsoleto. Significa que, si controlás el entorno y podés elegir, zstd suele ser una alternativa más moderna y eficiente.
zstd vs xz
xz suele entrar en escena cuando querés empujar más fuerte la compresión y aceptás pagar ese resultado con más tiempo y más CPU.
Para archivos que se generan una vez, se distribuyen poco y donde cada mega ahorrado importa, xz puede seguir siendo atractivo.
Pero para trabajo operativo del día a día, zstd muchas veces resulta más cómodo porque:
- comprime mucho más rápido;
- descomprime muy rápido;
- mantiene ratios suficientemente buenos para la mayoría de los casos reales.
Dicho de otro modo: xz suele pelear por compresión máxima; zstd suele ganar por equilibrio práctico.
Recomendación rápida: cuál usar según el caso
Una regla simple podría ser esta:
- Usá
zstdsi querés una opción moderna, rápida y muy buena para trabajo técnico diario. - Usá
zipsi necesitás compartir archivos con máxima compatibilidad y apertura sencilla en equipos de escritorio. - Usá
gzipsi dependés de compatibilidad histórica o de pipelines Unix donde.gzsigue siendo el estándar. - Usá
xzsi tu prioridad principal es apretar más el tamaño y te importa menos el tiempo de proceso.
Conclusión
zstd vale la pena porque resuelve muy bien un problema cotidiano: comprimir y descomprimir archivos sin que el proceso se vuelva innecesariamente lento.
Para entornos Linux, backups, logs, artefactos grandes y flujos de infraestructura, suele ser una de las opciones más sensatas hoy porque combina velocidad alta, descompresión muy rápida y una relación de compresión más que competente.
No reemplaza automáticamente a zip, gzip ni xz. Cada uno sigue teniendo su lugar. Pero si querés una opción generalista, moderna y muy práctica para terminal, zstd merece estar bastante arriba en la lista.
