Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
Aquí puedes convertir XZ a GZ gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. El archivo viaja cifrado a nuestro servidor, se convierte allí y se borra en cuanto termina el trabajo.
Hasta 100 archivos a la vez. Mezclar formatos no es problema.
Se convierten uno tras otro y vuelven juntos en un ZIP.
XZ a GZ
Quien llega aquí rara vez hizo el archivo. Un proyecto publica un `.tar.xz` y ahora hay que servírselo a otra gente: un espejo interno, una entrega adjunta a una versión, una carpeta compartida, un enlace de descarga para un público cuyos equipos y costumbres no controlas. Arriba eligieron XZ optimizando ancho de banda para un público técnico; tú optimizas para quien haga clic.
La otra versión del mismo caso no es una persona sino un entorno de ejecución. Un paso de carga de datos escrito en Python o en Go abre gzip con una importación de la biblioteca estándar y necesita una dependencia, un paquete del sistema o un subproceso para cualquier otra cosa; una función sin servidor o una imagen de contenedor endurecida a menudo no puede tenerla. Si a ti nadie te impone esa restricción, la recomendación honesta es dejar el XZ exactamente como está.
La ventaja de gzip no es técnica, es histórica, y se acumula. DEFLATE se publicó como RFC 1951 en mayo de 1996 y el contenedor de gzip como RFC 1952 ese mismo mes; el mismo algoritmo vive dentro de cada PNG, dentro de cada ZIP, dentro del `Content-Encoding: gzip` de HTTP, dentro de un objeto de Git y dentro de un JAR de Java. Cualquier plataforma que haga alguna de esas cosas ya tiene una implementación de DEFLATE enlazada, así que exponer un lector de gzip no le cuesta nada.
XZ, de 2009, no tuvo ese vehículo. Es un formato excelente y hay que instalarlo como sí mismo. En Linux eso es trivial, porque el gestor de paquetes depende de él; en cualquier otro sitio es una decisión que alguien tiene que tomar. El registro anota la compatibilidad con navegadores como total para GZ y nula para XZ, que es una afirmación estrecha sobre un contexto concreto y una señal razonable sobre muchos otros.
La distancia entre los dos formatos cabe en un número, y el registro guarda las dos mitades: DEFLATE busca repeticiones en una ventana de 32 KB, y LZMA2 trabaja con un diccionario de hasta 64 MB. Cuando gzip está comprimiendo el byte un millón puede mirar hacia atrás hasta el novecientos sesenta y ocho mil y ni un byte más; xz todavía ve el principio del archivo.
Sobre un conjunto de archivos parecidos eso no es una diferencia marginal. Doscientos archivos de código con la misma cabecera de licencia, un año de líneas de registro construidas sobre cuarenta plantillas, una documentación compilada que repite la navegación en cada página: xz aprende cada patrón una vez y gzip lo vuelve a aprender constantemente. Espera verlo con claridad en los dos tamaños. Donde no se nota es en un archivo lleno de JPEG, de MP4 o de cualquier cosa ya comprimida, y si ese es tu caso esta conversión casi no te cuesta nada.
Gzip descodifica de principio a fin con una ventana fija de 32 KB y sin índice, y de ahí sale su propiedad más útil: un tarball comprimido con gzip se puede consumir a medida que llega. Un `curl … | tar xzf -` desempaqueta una descarga que nunca aterriza en disco, un servidor web puede comprimir una respuesta que aún no ha terminado de generar, y un recolector de registros comprime sobre la marcha sin saber cuántos datos vienen.
XZ también se puede transmitir así, pero la memoria que necesita es proporcional a su diccionario en vez de fija, y eso cambia el carácter del asunto. Una cadena en la que el consumidor es pequeño —un dispositivo empotrado, un contenedor con la memoria limitada, una función con un tope duro— puede consumir un flujo gzip de longitud ilimitada y puede que no consiga consumir uno de xz. Si tu motivo para convertir fue que algo no consiguió reservar memoria, este párrafo es la explicación.
La conversión extrae el archivo y escribe un TAR nuevo con el contenido antes de comprimirlo con gzip. Cada archivo de dentro sale byte por byte, pero el tarball es otro: el orden de los miembros, las marcas de tiempo registradas y los bits de permisos pueden diferir de los de arriba, y ninguna suma de verificación publicada va a coincidir con el resultado.
Para un espejo eso es una cuestión de presentación y no de corrección. Publica tu propio resumen del archivo que estás sirviendo de verdad, y di con claridad que el artefacto canónico es el `.tar.xz` de origen con la firma de origen. Lo que no se puede hacer es servir un archivo reempaquetado bajo la suma ajena, ni insinuar que los dos son el mismo objeto. Si tu público necesita verificar contra la firma del proyecto, necesita el original, y la respuesta correcta es ofrecer los dos.
Los archivos de dentro salen byte por byte: esto es un reempaquetado sin pérdida y el contenido no se toca. Lo que no sobrevive es lo que el contenedor guardaba sobre ellos en lugar de dentro de ellos —una contraseña, y según el formato los permisos y las marcas de tiempo originales.
De esos tres, el que más sorpresas da es el de los permisos. Una entrega con un guion de instalación dentro depende de que el guion llegue con permiso de ejecución, así que si el destino de todo esto es una máquina Unix donde algo se va a ejecutar, la conversión es un cambio que hay que probar y no dar por supuesto. Si lo que llevas dentro son documentos, un conjunto de datos o código que solo se va a leer, nada de esto te afecta.
Una cosa mejora en esta dirección. Un flujo gzip tiene un campo de cabecera para el nombre del archivo original y un flujo xz no tiene ninguno: xz guarda una comprobación de integridad y nada sobre de dónde venían los datos. Esa asimetría es la razón de que `gunzip datos.gz` pueda devolverte `datos.tar` mientras que `unxz datos.xz` te deja con un archivo llamado `datos` que resulta ser un contenedor.
Es una cortesía y no una garantía: bastantes herramientas escriben un nombre genérico en ese campo y otras tantas lo ignoran al extraer. La extensión sigue siendo lo que de verdad se lee, así que ponle `.tar.gz` a la descarga antes de publicarla. Dejarlo en `.gz` invita a que alguien ejecute `gunzip` y se quede con un tarball suelto entre las manos, que es exactamente la confusión que manda a la gente a buscar un conversor.
Si la limitación es de memoria y no de disponibilidad, bzip2 merece una mirada: trabaja en bloques independientes de como mucho 900 KB, así que necesita casi nada para desempaquetar, y comprime mejor que gzip sobre texto. El coste es el tiempo de descompresión: deshacer una transformada de Burrows–Wheeler es cálculo de verdad.
La prueba es qué avería estás sorteando. Algo dijo que no podía reservar memoria, en un aparato lento y con tiempo de sobra: bzip2 es una respuesta razonable. Algo no reconoció el formato, o el archivo va a personas y no a máquinas: gzip, sin dudarlo, porque el registro marca BZ2 como heredado y no está ni de lejos tan presente.
En nuestro servidor, no en tu navegador. La mayoría de las herramientas de este sitio convierten en tu propio equipo y lo dicen; el trabajo con archivos comprimidos es una de las excepciones, porque necesita 7-Zip, xz y gzip como programas de verdad. El archivo viaja por una conexión cifrada hasta un contenedor que los ejecuta y que no tiene salida a internet.
Cada trabajo recibe su propio directorio de trabajo con un nombre generado, tu archivo se guarda allí como `input` más la extensión —de modo que el nombre que le pusiste tú no llega a escribirse en disco— y el directorio entero se borra al terminar, tanto si la conversión funcionó como si falló. El resultado se devuelve con la cabecera que impide su almacenamiento en caché. No hay base de datos ni almacén de objetos en el despliegue. Lo que sí conviene decir es que los nombres de los archivos que van *dentro* del comprimido pasan por herramientas de línea de órdenes cuya salida de error puede acabar en un registro del servidor, y ese punto sigue abierto: no vamos a escribir un absoluto sobre él.
El primero es el tamaño: 25 MB por archivo subido, que es la cuarta parte del que se aplica a las conversiones locales, porque esta cuesta máquina. El segundo es la expansión declarada: si el comprimido dice que al abrirse ocupará más de 2 GiB, se rechaza antes de extraer nada. Un XZ bien comprimido llega a esa cifra con facilidad, así que es el límite que más se encuentra la gente aquí.
El tercero es el tiempo, y hay que enunciarlo con cuidado porque la frase cómoda es falsa. Cada programa que se lanza se mata a los sesenta segundos, y una conversión de archivo comprimido lanza varios en cadena: descomprimir, volver a empaquetar, comprimir. De modo que una petición puede pasar legítimamente del minuto sin que nada se haya roto; lo que no puede es que un solo paso se quede colgado. Hay además cien conversiones de servidor por visitante y día, contadas por día UTC, y un tope de cinco por minuto para ráfagas.
Donde controles la página de descarga, el mejor resultado no suele ser una conversión sino una suma. Ofrece el `.tar.xz` de origen para quien pueda usarlo y el `.tar.gz` al lado para quien no, etiqueta cuál es cuál, y deja elegir. El ancho de banda del público técnico sigue siendo barato y desaparece la conversación incómoda de soporte, a cambio de un poco de almacenamiento.
Cuando haya que elegir uno, elige por quién está al otro lado y no por qué formato es mejor. Una descarga pública dirigida a un público general, un artefacto interno que recogen herramientas que nadie ha auditado, cualquier cosa adjunta a una incidencia de un cliente: gzip. Una versión dirigida de lleno a desarrolladores sobre Linux, o un archivo que guardas en vez de repartir: déjalo en XZ, y esta página habrá hecho su trabajo quitándote la conversión de la cabeza.
| XZ | GZ | |
|---|---|---|
| Nombre completo | Archivo XZ | Archivo Gzip |
| Extensión de archivo | .xz | .gz, .tgz |
| Tipo de medio | application/x-xz | application/gzip |
| Compresión | Sin pérdida — no se descarta nada | Sin pérdida — no se descarta nada |
| Publicado por primera vez | 2009 | 1992 |
| Especificación | — | RFC 1952 |
| Licencia | Estándar abierto | Estándar abierto |
| Situación actual | Vigente | Vigente |
| Se abre en el navegador | Ningún navegador | Ningún navegador |
| Considerado en su lugar | BZ2, 7Z | BZ2, ZIP |
No se descarta nada. XZ y GZ guardan su contenido sin pérdida, así que la conversión cambia el envoltorio y no la calidad, y puede repetirse sin que el daño se acumule.
7-Zip y Keka leen tanto XZ como GZ, así que puedes comparar el resultado con el original sin un segundo programa.
GZ trabaja por tramos de 32 KB frente a los 8 MB de XZ: para comprimirse, una repetición tiene que caber entera dentro de uno. De ahí viene la diferencia de compresión y por eso es el más rápido de los dos.
GZ es de 1992, recogido en RFC 1952. gzip, 7-Zip y Keka lo leen.
GZ se publicó en 1992 y XZ en 2009. El más antiguo suele ser el archivo más seguro para entregar; el más reciente hace lo mismo con menos bytes.
Sí: esta conversión necesita software que no puede funcionar en un navegador. El archivo viaja cifrado a nuestro servidor, se borra en cuanto termina el trabajo y el resultado a los 60 minutos. El trabajo lo hace 7-Zip, el archivador, en su forma de línea de comandos.
Sí, hasta 100 conversiones al día para archivos de hasta 25 MB. Ese único límite existe porque esta conversión se ejecuta en un servidor que pagamos nosotros. Por lo demás aquí no hay nada limitado, y marca de agua no hay en ningún caso. El límite existe porque 7-Zip necesita una máquina nuestra para funcionar.
No. GZ guarda el mismo contenido sin tirar nada: el resultado es idéntico en calidad al original. Los archivos salen byte a byte iguales. Lo que no sobrevive es lo que el contenedor sabía *sobre* ellos y no lo que había *dentro*: una contraseña y, en algunos formatos, los permisos y las marcas de tiempo originales.
No se descarta nada. XZ y GZ guardan su contenido sin pérdida, así que la conversión cambia el envoltorio y no la calidad, y puede repetirse sin que el daño se acumule.