Xz
# Xz

xz ist das Datenkompressionsformat der XZ Utils. Die Gestaltung lehnt sich an die Datenformate von compress, gzip und bzip2 an. So ist es wie diese keine Archivdatei, unterstützt also nur eine einzelne Datei als Inhalt.

Die Dateien werden durch die Dateinamenserweiterung .xz gekennzeichnet, komprimierte tar-Archive erhalten die Dateinamenserweiterung .txz oder .tar.xz.

## Merkmale

Das Format unterstützt mehrere Kompressionsalgorithmen (sogenannte Filter) aus einer erweiterbaren Liste, welche auch miteinander kombinierbar sind. Die Referenzimplementierung nutzt primär den Lempel-Ziv-Markow-Algorithmus (LZMA/LZMA2). Inhalte werden durch Prüfsummen geschützt, wobei ebenfalls eine Reihe von Prüfsummenalgorithmen aus einer erweiterbaren Liste unterstützt werden. Der Datenstrom kann in mehreren unabhängigen Blöcken komprimiert und in die Datei geschrieben werden, um z. B. wahlfreien Zugriff zu beschleunigen. Dabei können auch für die einzelnen Blöcke unterschiedliche Kompressionsalgorithmen genutzt werden. Wie bei gz- und bz2-Dateien können mehrere xz-Dateien durch Aneinanderhängen zu einer gültigen neuen zusammengeführt werden, und es kann ein Vielfaches von vier an Nullbytes angehängt werden (eine gültige xz-Datei hat eine durch vier teilbare Anzahl von Bytes) um z. B. bestimmte Dateigrößen zu erreichen. Das Format ist Streaming-fähig, kann also über Pipes verarbeitet werden.

## Unterstützung, Verwendung

Neben der Referenzimplementierung, den XZ Utils, können viele weitere Packer/Entpacker das Format lesen, darunter 7-Zip ab der Version 9, WinRAR ab Version 5 und The Unarchiver. Dazu gibt es mit XZ Embedded eine besonders kleine Implementierung, die unter anderem im Linux-Kernel verwendet wird.

Die Implementierung des GNU-Projektes des bei der Komprimierung unter Linux und Unix oft verwendeten Packprogrammes tar unterstützt ab der Version 1.22 die direkte Erzeugung von xz-komprimierten tar-Dateien mit der Erweiterung .tar.xz und der Option -J bzw. --xz.

Die GNU Core Utilities werden ab Version 7.1 neben dem gz-Format auch im xz-Format ausgeliefert und ab der Version 8.14 ausschließlich im xz-Format. Weiterhin existiert eine auf Mehrkern-CPUs optimierte xz-Implementierung namens pixz, welche bei tar-Dateien auch einen Index anlegen kann, um schnellen wahlfreien Zugriff zu ermöglichen.

