Provided by: xz-utils_5.8.1-1build1_amd64 bug

BEZEICHNUNG

       xz, unxz, xzcat, lzma, unlzma, lzcat - .xz- und .lzma-Dateien komprimieren oder dekomprimieren

ÜBERSICHT

       xz [Option…] [Datei…]

BEFEHLSALIASE

       unxz ist gleichbedeutend mit xz --decompress.
       xzcat ist gleichbedeutend mit xz --decompress --stdout.
       lzma ist gleichbedeutend mit xz --format=lzma.
       unlzma ist gleichbedeutend mit xz --format=lzma --decompress.
       lzcat ist gleichbedeutend mit xz --format=lzma --decompress --stdout.

       Wenn  Sie  Skripte  schreiben,  die  Dateien  dekomprimieren,  sollten  Sie  stets  den  Namen xz mit den
       entsprechenden Argumenten (xz -d oder xz -dc) anstelle der Namen unxz und xzcat verwenden.

BESCHREIBUNG

       xz ist ein Allzweckwerkzeug zur  Datenkompression,  dessen  Befehlszeilensyntax  denen  von  gzip(1)  und
       bzip2(1)   ähnelt.   Das   native   Dateiformat   ist   das  .xz-Format,  aber  das  veraltete,  von  den
       LZMA-Dienstprogrammen verwendete Format sowie  komprimierte  Rohdatenströme  ohne  Containerformat-Header
       werden  ebenfalls  unterstützt.  Außerdem  wird  die  Dekompression  des von lzip verwendeten .lz-Formats
       unterstützt.

       xz komprimiert oder dekomprimiert jede Datei entsprechend des gewählten Vorgangsmodus. Falls  entweder  -
       oder  keine Datei angegeben ist, liest xz aus der Standardeingabe und leitet die verarbeiteten Dateien in
       die  Standardausgabe.  Wenn  die  Standardausgabe  kein  Terminal  ist,  verweigert  xz   das   Schreiben
       komprimierter  Daten  in  die  Standardausgabe.  Dabei  wird  eine  Fehlermeldung angezeigt und die Datei
       übersprungen. Ebenso verweigert xz das Lesen komprimierter Daten aus der Standardeingabe, wenn diese  ein
       Terminal ist.

       Dateien,  die nicht als - angegeben sind, werden in eine neue Datei geschrieben, deren Name aus dem Namen
       der Quell-Datei abgeleitet wird (außer wenn --stdout angegeben ist):

       •  Bei der Kompression wird das Suffix des Formats der Zieldatei  (.xz  oder  .lzma)  an  den  Namen  der
          Quelldatei angehängt und so der Name der Zieldatei gebildet.

       •  Bei  der Dekompression wird das Suffix .xz, .lzma oder .lz vom Dateinamen entfernt und so der Name der
          Zieldatei gebildet. Außerdem erkennt xz die Suffixe .txz und .tlz und ersetzt diese durch .tar.

       Wenn die Zieldatei bereits existiert, wird eine Fehlermeldung angezeigt und die Datei übersprungen.

       Außer beim Schreiben in die Standardausgabe zeigt xz eine Warnung an und überspringt die Datei, wenn eine
       der folgenden Bedingungen zutreffend ist:

       •  Die Datei ist keine reguläre Datei. Symbolischen Verknüpfungen wird  nicht  gefolgt  und  diese  daher
          nicht zu den regulären Dateien gezählt.

       •  Die Datei hat mehr als eine harte Verknüpfung.

       •  Für die Datei ist das »setuid«-, »setgid«- oder »sticky«-Bit gesetzt.

       •  Der   Aktionsmodus   wird   auf  Kompression  gesetzt  und  die  Datei  hat  bereits  das  Suffix  des
          Zieldateiformats (.xz oder .txz  beim  Komprimieren  in  das  .xz-Format  und  .lzma  oder  .tlz  beim
          Komprimieren in das .lzma-Format).

       •  Der  Aktionsmodus  wird  auf  Dekompression  gesetzt  und  die  Datei  hat  nicht das Suffix eines der
          unterstützten Zieldateiformate (.xz, .txz, .lzma, .tlz oder .lz).

       Nach  erfolgreicher  Kompression  oder  Dekompression  der   Datei   kopiert   xz   Eigentümer,   Gruppe,
       Zugriffsrechte,  Zugriffszeit  und  Änderungszeit  aus  der  Ursprungs-Datei in die Zieldatei. Sollte das
       Kopieren der Gruppe fehlschlagen, werden die  Zugriffsrechte  so  angepasst,  dass  jenen  Benutzern  der
       Zugriff  auf  die  Zieldatei verwehrt bleibt, die auch keinen Zugriff auf die Ursprungs-Datei hatten. Das
       Kopieren anderer Metadaten wie Zugriffssteuerlisten oder erweiterter Attribute wird  von  xz  noch  nicht
       unterstützt.

       Sobald  die  Zieldatei  erfolgreich geschlossen wurde, wird die Ursprungs-Datei entfernt. Dies wird durch
       die Option --keep verhindert. Die  Ursprungs-Datei  wird  niemals  entfernt,  wenn  die  Ausgabe  in  die
       Standardausgabe geschrieben wird oder falls ein Fehler auftritt.

       Durch  Senden  der Signale SIGINFO oder SIGUSR1 an den xz-Prozess werden Fortschrittsinformationen in den
       Fehlerkanal  der  Standardausgabe  geleitet.   Dies   ist   nur   eingeschränkt   hilfreich,   wenn   die
       Standardfehlerausgabe   ein   Terminal   ist.  Mittels  --verbose  wird  ein  automatisch  aktualisierter
       Fortschrittsanzeiger angezeigt.

   Speicherbedarf
       In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich  der  Speicherverbrauch  zwischen
       wenigen  hundert  Kilobyte  und  mehreren  Gigabyte.  Die  Einstellungen  bei der Kompression einer Datei
       bestimmen dabei den Speicherbedarf  bei  der  Dekompression.  Die  Dekompression  benötigt  üblicherweise
       zwischen  5 %  und 20 % des Speichers, der bei der Kompression der Datei erforderlich war. Beispielsweise
       benötigt die Dekompression einer Datei,  die  mit  xz  -9  komprimiert  wurde,  gegenwärtig  etwa  65 MiB
       Speicher.  Es  ist  jedoch  auch möglich, dass .xz-Dateien mehrere Gigabyte an Speicher zur Dekompression
       erfordern.

       Insbesondere für Benutzer älterer Systeme wird eventuell ein sehr großer Speicherbedarf  ärgerlich  sein.
       Um   unangenehme   Überraschungen   zu   vermeiden,  verfügt  xz  über  eine  eingebaute  Begrenzung  des
       Speicherbedarfs,  die  allerdings  in  der  Voreinstellung  deaktiviert   ist.   Zwar   verfügen   einige
       Betriebssysteme  über  eingebaute Möglichkeiten zur prozessabhängigen Speicherbegrenzung, doch diese sind
       zu  unflexibel  (zum  Beispiel  kann  ulimit(1)  beim  Begrenzen   des   virtuellen   Speichers   mmap(2)
       beeinträchtigen).

       Die  Begrenzung  des  Speicherbedarfs  kann  mit  der Befehlszeilenoption --memlimit=Begrenzung aktiviert
       werden. Oft ist es jedoch  bequemer,  die  Begrenzung  durch  Setzen  der  Umgebungsvariable  XZ_DEFAULTS
       standardmäßig zu aktivieren, zum Beispiel XZ_DEFAULTS=--memlimit=150MiB. Die Begrenzungen können getrennt
       für      Kompression      und      Dekompression      mittels      --memlimit-compress=Begrenzung     und
       --memlimit-decompress=Begrenzung festgelegt werden. Die Verwendung einer  solchen  Option  außerhalb  der
       Variable  XZ_DEFAULTS  ist  kaum sinnvoll, da xz in einer einzelnen Aktion nicht gleichzeitig Kompression
       und Dekompression ausführen kann und --memlimit=Begrenzung (oder -M Begrenzung) lässt sich  einfacher  in
       der Befehlszeile eingeben.

       Wenn die angegebene Speicherbegrenzung bei der Dekompression überschritten wird, schlägt der Vorgang fehl
       und  xz zeigt eine Fehlermeldung an. Wird die Begrenzung bei der Kompression überschritten, dann versucht
       xz die Einstellungen entsprechend anzupassen, außer wenn --format=raw oder --no-adjust angegeben ist. Auf
       diese Weise schlägt die Aktion nicht fehl, es sei denn, die Begrenzung wurde sehr niedrig angesetzt.  Die
       Anpassung  der Einstellungen wird schrittweise vorgenommen, allerdings entsprechen die Schritte nicht den
       Voreinstellungen der Kompressionsstufen. Das bedeutet, wenn beispielsweise die Begrenzung nur geringfügig
       unter den Anforderungen für xz -9 liegt, werden auch die Einstellungen  nur  wenig  angepasst  und  nicht
       vollständig herunter zu den Werten für xz -8

   Verkettung und Auffüllung von .xz-Dateien
       Es  ist  möglich, .xz-Dateien direkt zu verketten. Solche Dateien werden von xz genauso dekomprimiert wie
       eine einzelne .xz-Datei.

       Es ist weiterhin möglich, eine Auffüllung zwischen den verketteten Teilen  oder  nach  dem  letzten  Teil
       einzufügen. Die Auffüllung muss aus Null-Bytes bestehen und deren Größe muss ein Vielfaches von vier Byte
       sein.  Dies kann zum Beispiel dann vorteilhaft sein, wenn die .xz-Datei auf einem Datenträger gespeichert
       wird, dessen Dateisystem die Dateigrößen in 512-Byte-Blöcken speichert.

       Verkettung und Auffüllung sind für .lzma-Dateien oder Rohdatenströme nicht erlaubt.

OPTIONEN

   Ganzzahlige Suffixe und spezielle Werte
       An den meisten Stellen, wo ein ganzzahliges Argument akzeptiert wird, kann ein  optionales  Suffix  große
       Ganzzahlwerte  einfacher  darstellen.  Zwischen  Ganzzahl  und  dem  Suffix dürfen sich keine Leerzeichen
       befinden.

       KiB    multipliziert die Ganzzahl mit 1.024 (2^10). Ki, k, kB, K und  KB  werden  als  Synonyme  für  KiB
              akzeptiert.

       MiB    multipliziert  die  Ganzzahl  mit  1.048.576  (2^20).  Mi, m, M und MB werden als Synonyme für MiB
              akzeptiert.

       GiB    multipliziert die Ganzzahl mit 1.073.741.824 (2^30). Gi, g, G und GB werden als Synonyme  für  GiB
              akzeptiert.

       Der  spezielle  Wert  max  kann  dazu  verwendet  werden,  um  den von der jeweiligen Option akzeptierten
       maximalen Ganzzahlwert anzugeben.

   Aktionsmodus
       Falls mehrere Aktionsmodi angegeben sind, wird der zuletzt angegebene verwendet.

       -z, --compress
              Kompression. Dies ist der voreingestellte Aktionsmodus, sofern keiner angegeben ist und auch  kein
              bestimmter  Modus  aus  dem  Befehlsnamen  abgeleitet  werden kann (der Befehl unxz impliziert zum
              Beispiel --decompress).

              Nach erfolgreicher Kompression wird die Quelldatei gelöscht, außer  wenn  in  die  Standardausgabe
              geschrieben wird oder --keep angegeben wurde.

       -d, --decompress, --uncompress
              Dekomprimieren.  Nach  erfolgreicher Dekompression wird die Quelldatei gelöscht, außer wenn in die
              Standardausgabe geschrieben wird oder --keep angegeben wurde.

       -t, --test
              prüft die Integrität der komprimierten Dateien. Diese Option ist gleichbedeutend mit  --decompress
              --stdout,   außer   dass   die   dekomprimierten  Daten  verworfen  werden,  anstatt  sie  in  die
              Standardausgabe zu leiten. Es werden keine Dateien erstellt oder entfernt.

       -l, --list
              gibt Informationen zu den komprimierten Dateien  aus.  Es  werden  keine  unkomprimierten  Dateien
              ausgegeben  und  keine  Dateien  angelegt  oder  entfernt.  Im Listenmodus kann das Programm keine
              komprimierten Daten aus der Standardeingabe oder anderen nicht durchsuchbaren Quellen lesen.

              Die Liste  zeigt  in  der  Standardeinstellung  grundlegende  Informationen  zu  den  Dateien  an,
              zeilenweise  pro  Datei.  Detailliertere Informationen erhalten Sie mit der Option --verbose. Wenn
              Sie diese Option zweimal angeben, werden noch ausführlichere Informationen  ausgegeben.  Das  kann
              den  Vorgang  allerdings  deutlich  verlangsamen, da die Ermittlung der zusätzlichen Informationen
              zahlreiche Suchvorgänge erfordert. Die Breite der ausführlichen  Ausgabe  übersteigt  80  Zeichen,
              daher  könnte  die Weiterleitung in beispielsweise less -S sinnvoll sein, falls das Terminal nicht
              breit genug ist.

              Die exakte Ausgabe kann in  verschiedenen  xz-Versionen  und  Spracheinstellungen  unterschiedlich
              sein.  Wenn  eine  maschinell  auswertbare  Ausgabe gewünscht ist, dann sollten Sie --robot --list
              verwenden.

   Aktionsattribute
       -k, --keep
              verhindert das Löschen der Eingabedateien.

              Seit der xz-Version 5.2.6 wird die Kompression oder Dekompression auch dann ausgeführt,  wenn  die
              Eingabe  ein  symbolischer  Link zu einer regulären Datei ist, mehr als einen harten Link hat oder
              das »setuid«-, »setgid«- oder »sticky«-Bit gesetzt ist. Die genannten Bits  werden  nicht  in  die
              Zieldatei kopiert. In früheren Versionen geschah dies nur mit --force.

       -f, --force
              Diese Option hat verschiedene Auswirkungen:

              •  Wenn  die  Zieldatei  bereits  existiert,  wird  diese  vor  der Kompression oder Dekompression
                 gelöscht.

              •  Die Kompression oder Dekompression wird auch dann ausgeführt, wenn die Eingabe ein symbolischer
                 Link zu einer regulären Datei ist, mehr als einen harten Link hat oder das »setuid«-, »setgid«-
                 oder »sticky«-Bit gesetzt ist. Die genannten Bits werden nicht in die Zieldatei kopiert.

              •  Wenn es zusammen mit --decompress und --stdout verwendet wird und xz  den  Typ  der  Quelldatei
                 nicht  ermitteln  kann, wird die Quelldatei unverändert in die Standardausgabe kopiert. Dadurch
                 kann xzcat --force für Dateien, die nicht mit  xz  komprimiert  wurden,  wie  cat(1)  verwendet
                 werden.  Zukünftig  könnte  xz  neue  Dateikompressionsformate  unterstützen,  wodurch  xz mehr
                 Dateitypen dekomprimieren kann, anstatt sie unverändert in die Standardausgabe zu kopieren. Mit
                 der  Option  --format=Format  können  Sie  xz  anweisen,  nur  ein  einzelnes  Dateiformat   zu
                 dekomprimieren.

       -c, --stdout, --to-stdout
              schreibt  die  komprimierten  oder  dekomprimierten  Daten  in die Standardausgabe anstatt in eine
              Datei. Dies impliziert --keep.

       --single-stream
              dekomprimiert nur den ersten .xz-Datenstrom und ignoriert  stillschweigend  weitere  Eingabedaten,
              die  möglicherweise dem Datenstrom folgen. Normalerweise führt solcher anhängender Datenmüll dazu,
              dass xz eine Fehlermeldung ausgibt.

              xz dekomprimiert niemals mehr als einen Datenstrom aus .lzma-Dateien  oder  Rohdatenströmen,  aber
              dennoch wird durch diese Option möglicherweise vorhandener Datenmüll nach der .lzma-Datei oder dem
              Rohdatenstrom ignoriert.

              Diese Option ist wirkungslos, wenn der Aktionsmodus nicht --decompress oder --test ist.

              Seit der Programmversion xz 5.7.1alpha impliziert --single-stream zusätzlich die Option --keep.

       --no-sparse
              verhindert  die  Erzeugung  von  Sparse-Dateien.  In  der  Voreinstellung  versucht  xz,  bei  der
              Dekompression in eine reguläre Datei eine Sparse-Datei zu erzeugen, wenn die dekomprimierten Daten
              lange Abfolgen von binären  Nullen  enthalten.  Dies  funktioniert  auch  beim  Schreiben  in  die
              Standardausgabe,   sofern   diese  in  eine  reguläre  Datei  weitergeleitet  wird  und  bestimmte
              Zusatzbedingungen erfüllt sind, die die Aktion absichern. Die Erzeugung  von  Sparse-Dateien  kann
              Plattenplatz  sparen  und  beschleunigt die Dekompression durch Verringerung der Ein-/Ausgaben der
              Platte.

       -S .suf, --suffix=.suf
              verwendet .suf bei der Dekompression anstelle von .xz oder .lzma als  Suffix  für  die  Zieldatei.
              Falls  nicht  in  die  Standardausgabe geschrieben wird und die Quelldatei bereits das Suffix .suf
              hat, wird eine Warnung angezeigt und die Datei übersprungen.

              berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen .xz, .txz, .lzma, .tlz
              oder .lz auch jene mit dem Suffix .suf. Falls die Quelldatei das  Suffix  .suf  hat,  wird  dieses
              entfernt und so der Name der Zieldatei abgeleitet.

              Beim  Komprimieren  oder Dekomprimieren von Rohdatenströmen mit --format=raw muss das Suffix stets
              angegeben werden, außer wenn die Ausgabe in die Standardausgabe erfolgt. Der Grund dafür ist, dass
              es kein vorgegebenes Suffix für Rohdatenströme gibt.

       --files[=Datei]
              liest die zu verarbeitenden Dateinamen aus Datei. Falls keine  Datei  angegeben  ist,  werden  die
              Dateinamen  aus  der  Standardeingabe  gelesen.  Dateinamen müssen mit einem Zeilenumbruch beendet
              werden. Ein Bindestrich (-) wird als regulärer Dateiname angesehen und nicht  als  Standardeingabe
              interpretiert.  Falls  Dateinamen außerdem als Befehlszeilenargumente angegeben sind, werden diese
              vor den Dateinamen aus der Datei verarbeitet.

       --files0[=Datei]
              Dies ist gleichbedeutend mit --files[=Datei], außer dass jeder Dateiname  mit  einem  Null-Zeichen
              abgeschlossen werden muss.

   Grundlegende Dateiformat- und Kompressionsoptionen
       -F Format, --format=Format
              gibt das Format der zu komprimierenden oder dekomprimierenden Datei an:

              auto   Dies  ist  die Voreinstellung. Bei der Kompression ist auto gleichbedeutend mit xz. Bei der
                     Dekompression wird das Format der Eingabedatei  automatisch  erkannt.  Beachten  Sie,  dass
                     Rohdatenströme,  wie  sie mit --format=raw erzeugt werden, nicht automatisch erkannt werden
                     können.

              xz     Die Kompression erfolgt in das .xz-Dateiformat oder  akzeptiert  nur  .xz-Dateien  bei  der
                     Dekompression.

              lzma, alone
                     Die   Kompression   erfolgt   in   das  veraltete  .lzma-Dateiformat  oder  akzeptiert  nur
                     .lzma-Dateien   bei   der   Dekompression.   Der   alternative   Name   alone   dient   der
                     Abwärtskompatibilität zu den LZMA-Dienstprogrammen.

              lzip   Akzeptiert nur .lz-Dateien bei der Dekompression. Kompression wird nicht unterstützt.

                     Das  .lz-Format  wird in Version 0 und der unerweiterten Version 1 unterstützt. Dateien der
                     Version 0 wurden von lzip 1.3 und älter erstellt.  Solche  Dateien  sind  nicht  sehr  weit
                     verbreitet,  können  aber in Dateiarchiven gefunden werden, da einige Quellpakete in diesem
                     Format veröffentlicht wurden. Es ist auch möglich, dass Benutzer alte  persönliche  Dateien
                     in  diesem Format haben. Die Dekompressionsunterstützung für das Format der Version 0 wurde
                     mit der Version 1.18 aus lzip entfernt.

                     lzip-Versionen ab 1.4 erstellen Dateien im Format der  Version  0.  Die  Erweiterung  »Sync
                     Flush  Marker«  zur  Formatversion  1 wurde in lzip 1.6 hinzugefügt. Diese Erweiterung wird
                     sehr selten verwendet und wird von xz nicht unterstützt (die Eingabe  wird  als  beschädigt
                     erkannt).

              raw    Komprimiert  oder dekomprimiert einen Rohdatenstrom (ohne Header). Diese Option ist nur für
                     fortgeschrittene Benutzer bestimmt. Zum  Dekodieren  von  Rohdatenströmen  müssen  Sie  die
                     Option  --format=raw  verwenden und die Filterkette ausdrücklich angeben, die normalerweise
                     in den (hier fehlenden) Container-Headern gespeichert worden wäre.

       -C Prüfung, --check=Prüfung
              gibt den Typ der Integritätsprüfung an. Die Prüfsumme wird aus den unkomprimierten Daten berechnet
              und in der .xz-Datei gespeichert. Diese Option wird nur bei  der  Kompression  in  das  .xz-Format
              angewendet,   da   das   .lzma-Format  keine  Integritätsprüfungen  unterstützt.  Die  eigentliche
              Integritätsprüfung erfolgt (falls möglich), wenn die .xz-Datei dekomprimiert wird.

              Folgende Typen von Prüfungen werden unterstützt:

              none   führt keine Integritätsprüfung aus. Dies ist eine eher  schlechte  Idee.  Dennoch  kann  es
                     nützlich sein, wenn die Integrität der Daten auf andere Weise sichergestellt werden kann.

              crc32  berechnet die CRC32-Prüfsumme anhand des Polynoms aus IEEE-802.3 (Ethernet).

              crc64  berechnet   die   CRC64-Prüfsumme   anhand   des   Polynoms  aus  ECMA-182.  Dies  ist  die
                     Voreinstellung, da beschädigte Dateien etwas besser als mit CRC32 erkannt  werden  und  die
                     Geschwindigkeitsdifferenz unerheblich ist.

              sha256 berechnet die SHA-256-Prüfsumme. Dies ist etwas langsamer als CRC32 und CRC64.

              Die  Integrität  der .xz-Header wird immer mit CRC32 geprüft. Es ist nicht möglich, dies zu ändern
              oder zu deaktivieren.

       --ignore-check
              verifiziert die Integritätsprüfsumme der komprimierten Daten  bei  der  Dekompression  nicht.  Die
              CRC32-Werte in den .xz-Headern werden weiterhin normal verifiziert.

              Verwenden  Sie diese Option nicht, außer Sie wissen, was Sie tun. Mögliche Gründe, diese Option zu
              verwenden:

              •  Versuchen, Daten aus einer beschädigten .xz-Datei wiederherzustellen.

              •  Erhöhung der  Geschwindigkeit  bei  der  Dekompression.  Dies  macht  sich  meist  mit  SHA-256
                 bemerkbar,  oder  mit  Dateien,  die extrem stark komprimiert sind. Wir empfehlen, diese Option
                 nicht für diesen Zweck zu verwenden, es sei denn, die Integrität  der  Datei  wird  extern  auf
                 andere Weise überprüft.

       -0-9
              wählt   eine   der   voreingestellten   Kompressionsstufen,   standardmäßig   -6.   Wenn   mehrere
              Voreinstellungsstufen angegeben sind, ist nur die zuletzt angegebene wirksam. Falls  bereits  eine
              benutzerdefinierte Filterkette angegeben wurde, wird diese durch die Festlegung der Voreinstellung
              geleert.

              Die  Unterschiede zwischen den Voreinstellungsstufen sind deutlicher als bei gzip(1) und bzip2(1).
              Die gewählten Kompressionseinstellungen bestimmen den Speicherbedarf bei der Dekompression,  daher
              ist  es auf älteren Systemen mit wenig Speicher bei einer zu hoch gewählten Voreinstellung schwer,
              eine Datei zu dekomprimieren. Insbesondere ist es keine gute Idee,  blindlings  -9  für  alles  zu
              verwenden, wie dies häufig mit gzip(1) und bzip2(1) gehandhabt wird.

              -0-3
                     Diese  Voreinstellungen  sind  recht  schnell. -0 ist manchmal schneller als gzip -9, wobei
                     aber die Kompression wesentlich  besser  ist.  Die  schnelleren  Voreinstellungen  sind  im
                     Hinblick  auf  die  Geschwindigkeit  mit  bzip2(1)  vergleichbar , mit einem ähnlichen oder
                     besseren  Kompressionsverhältnis,  wobei  das  Ergebnis  aber  stark   vom   Typ   der   zu
                     komprimierenden Daten abhängig ist.

              -4-6
                     Gute  bis  sehr gute Kompression, wobei der Speicherbedarf für die Dekompression selbst auf
                     alten Systemen akzeptabel ist. -6 ist die Voreinstellung, welche  üblicherweise  eine  gute
                     Wahl  für  die  Verteilung  von  Dateien  ist,  die selbst noch auf Systemen mit nur 16 MiB
                     Arbeitsspeicher dekomprimiert werden müssen (-5e oder -6e sind  ebenfalls  eine  Überlegung
                     wert. Siehe --extreme).

              -7  -9
                     Ähnlich   wie   -6,   aber  mit  einem  höheren  Speicherbedarf  für  die  Kompression  und
                     Dekompression. Sie sind nur nützlich, wenn Dateien komprimiert werden  sollen,  die  größer
                     als 8 MiB, 16 MiB beziehungsweise 32 MiB sind.

              Auf  der  gleichen  Hardware  ist  die Dekompressionsgeschwindigkeit ein nahezu konstanter Wert in
              Bytes komprimierter Daten pro  Sekunde.  Anders  ausgedrückt:  Je  besser  die  Kompression,  umso
              schneller  wird  üblicherweise  die  Dekompression sein. Das bedeutet auch, dass die Menge der pro
              Sekunde ausgegebenen unkomprimierten Daten stark variieren kann.

              Die folgende Tabelle fasst die Eigenschaften der Voreinstellungen zusammen:

                     Voreinst.   Wörtb.Gr   KomprCPU   KompSpeich   DekompSpeich
                        -0       256 KiB       0          3 MiB         1 MiB
                        -1         1 MiB       1          9 MiB         2 MiB
                        -2         2 MiB       2         17 MiB         3 MiB
                        -3         4 MiB       3         32 MiB         5 MiB
                        -4         4 MiB       4         48 MiB         5 MiB
                        -5         8 MiB       5         94 MiB         9 MiB
                        -6         8 MiB       6         94 MiB         9 MiB
                        -7        16 MiB       6        186 MiB        17 MiB
                        -8        32 MiB       6        370 MiB        33 MiB
                        -9        64 MiB       6        674 MiB        65 MiB

              Spaltenbeschreibungen:

              •  Wörtb.Größe ist die Größe des LZMA2-Wörterbuchs. Es ist Speicherverschwendung,  ein  Wörterbuch
                 zu  verwenden,  das  größer  als  die  unkomprimierte  Datei  ist.  Daher  ist  es  besser, die
                 Voreinstellungen -7-9 zu vermeiden, falls es keinen wirklichen Bedarf dafür gibt. Mit -6 und
                 weniger wird üblicherweise so wenig Speicher verschwendet, dass dies nicht ins Gewicht fällt.

              •  KomprCPU  ist  eine   vereinfachte   Repräsentation   der   LZMA2-Einstellungen,   welche   die
                 Kompressionsgeschwindigkeit  beeinflussen.  Die  Wörterbuchgröße  wirkt  sich ebenfalls auf die
                 Geschwindigkeit aus. Während KompCPU für die Stufen -6 bis  -9  gleich  ist,  tendieren  höhere
                 Stufen  dazu,  etwas  langsamer  zu  sein. Um eine noch langsamere, aber möglicherweise bessere
                 Kompression zu erhalten, siehe --extreme.

              •  KompSpeich enthält den Speicherbedarf  des  Kompressors  im  Einzel-Thread-Modus.  Dieser  kann
                 zwischen den xz-Versionen leicht variieren.

              •  DekompSpeich  enthält  den  Speicherbedarf  für  die  Dekompression.  Das  bedeutet,  dass  die
                 Kompressionseinstellungen den  Speicherbedarf  bei  der  Dekompression  bestimmen.  Der  exakte
                 Speicherbedarf   bei   der   Dekompression   ist   geringfügig   größer   als   die  Größe  des
                 LZMA2-Wörterbuchs, aber die Werte in der Tabelle wurden auf ganze MiB aufgerundet.

               Der Speicherbedarf einiger der zukünftigen Multithread-Modi kann dramatisch  höher  sein  als  im
              Einzel-Thread-Modus. Mit dem Standardwert von --block-size benötigt jeder Thread 3*3*Wörtb.Gr plus
              KompSpeich oder DekompSpeich. Beispielsweise benötigen vier Threads mit der Voreinstellung -6 etwa
              660 bis 670 MiB Speicher.

       -e, --extreme
              verwendet  eine  langsamere Variante der gewählten Kompressions-Voreinstellungsstufe (-0-9), um
              hoffentlich ein etwas besseres Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen
              auch schlechter werden  kann.  Der  Speicherverbrauch  bei  der  Dekompression  wird  dabei  nicht
              beeinflusst, aber der Speicherverbrauch der Kompression steigt in den Voreinstellungsstufen -0 bis
              -3 geringfügig an.

              Da  es  zwei  Voreinstellungen  mit  den  Wörterbuchgrößen  4 MiB  und  8 MiB  gibt, verwenden die
              Voreinstellungsstufen -3e und -5e etwas schnellere  Einstellungen  (niedrigere  KompCPU)  als  -4e
              beziehungsweise -6e. Auf diese Weise sind zwei Voreinstellungen nie identisch.

                     Voreinst.   Wörtb.Gr   KomprCPU   KompSpeich   DekompSpeich
                        -0e      256 KiB       8          4 MiB         1 MiB
                        -1e        1 MiB       8         13 MiB         2 MiB
                        -2e        2 MiB       8         25 MiB         3 MiB
                        -3e        4 MiB       7         48 MiB         5 MiB
                        -4e        4 MiB       8         48 MiB         5 MiB
                        -5e        8 MiB       7         94 MiB         9 MiB
                        -6e        8 MiB       8         94 MiB         9 MiB
                        -7e       16 MiB       8        186 MiB        17 MiB
                        -8e       32 MiB       8        370 MiB        33 MiB
                        -9e       64 MiB       8        674 MiB        65 MiB

              Zum  Beispiel  gibt es insgesamt vier Voreinstellungen, die ein 8 MiB großes Wörterbuch verwenden,
              deren Reihenfolge von der schnellsten zur langsamsten -5, -6, -5e und -6e ist.

       --fast
       --best sind  etwas  irreführende  Aliase   für   -0   beziehungsweise   -9.   Sie   werden   nur   zwecks
              Abwärtskompatibilität  zu  den  LZMA-Dienstprogrammen  bereitgestellt.  Sie sollten diese Optionen
              besser nicht verwenden.

       --block-size=Größe
              teilt beim Komprimieren in das .xz-Format die Eingabedaten in  Blöcke  der  angegebenen  Größe  in
              Byte. Die Blöcke werden unabhängig voneinander komprimiert, was dem Multi-Threading entgegen kommt
              und  Zufallszugriffe  bei der Dekompression begrenzt. Diese Option wird typischerweise eingesetzt,
              um die vorgegebene Blockgröße im Multi-Thread-Modus außer Kraft zu setzen, aber sie kann  auch  im
              Einzel-Thread-Modus angewendet werden.

              Im  Multi-Thread-Modus  wird  etwa  die dreifache Größe in jedem Thread zur Pufferung der Ein- und
              Ausgabe belegt. Die vorgegebene Größe ist das Dreifache der Größe  des  LZMA2-Wörterbuchs  oder  1
              MiB,  je  nachdem,  was  mehr  ist.  Typischerweise  ist  das  Zwei-  bis  Vierfache der Größe des
              LZMA2-Wörterbuchs oder wenigstens 1 MB ein guter Wert. Eine Größe, die geringer ist  als  die  des
              LZMA2-Wörterbuchs,   ist  Speicherverschwendung,  weil  dann  der  LZMA2-Wörterbuchpuffer  niemals
              vollständig genutzt werden würde. Im Multi-Thread-Modus wird die Größe  der  Blöcke  wird  in  den
              Block-Headern gespeichert. Die Größeninformation wird für eine Multi-Thread-Dekompression genutzt.

              Im  Einzel-Thread-Modus  werden  die  Blöcke standardmäßig nicht geteilt. Das Setzen dieser Option
              wirkt sich nicht auf den Speicherbedarf aus. In den Block-Headern werden keine Größeninformationen
              gespeichert,  daher  werden  im   Einzel-Thread-Modus   erzeugte   Dateien   nicht   zu   den   im
              Multi-Thread-Modus  erzeugten  Dateien  identisch  sein.  Das Fehlen der Größeninformation bedingt
              auch, dass xz nicht in der Lage sein wird, die Dateien im Multi-Thread-Modus zu dekomprimieren.

       --block-list=Blöcke
              beginnt bei der Kompression in das .xz-Format nach  den  angegebenen  Intervallen  unkomprimierter
              Daten einen neuen Block, optional mit einer benutzerdefinierten Filterkette.

              Die Blöcke werden in einer durch Kommata getrennten Liste angegeben. Jeder Block besteht aus einer
              optionalen  Filterkettennummer  zwischen  0 und 9, gefolgt von einem Doppelpunkt (:) und der Größe
              der unkomprimierten Daten (diese Angabe ist erforderlich). Überspringen eines  Blocks  (zwei  oder
              mehr  aufeinander  folgende Kommata) ist ein Kürzel dafür, die Größe und die Filter des vorherigen
              Blocks zu verwenden.

              Falls die Eingabedatei größer ist als die Summe der  Blöcke,  dann  wird  der  letzte  in  VBlöcke
              angegebene  Wert  bis zum Ende der Datei wiederholt. Mit dem speziellen Wert 0 können Sie angeben,
              dass der Rest der Datei als einzelner Block kodiert werden soll.

              Eine  alternative  Filterkette  für  jeden  Block   kann   in   Kombination   mit   den   Optionen
              --filters1=Filter--filters9=Filter angegeben werden. Diese Optionen definieren Filterketten mit
              einem  Bezeichner  zwischen  1  und  9.  Die  Filterkette 0 bezeichnet hierbei die voreingestellte
              Filterkette, was dem Nichtangeben einer Filterkette gleichkommt. Der  Filterkettenbezeichner  kann
              vor  der  unkomprimierten  Größe  verwendet  werden,  gefolgt von einem Doppelpunkt (:). Falls Sie
              beispielsweise   --block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB   angeben,   werden   die   Blöcke
              folgendermaßen erstellt:

              •  Die durch --filters1 angegebene Filterkette und 2 MiB Eingabe

              •  Die durch --filters3 angegebene Filterkette und 2 MiB Eingabe

              •  Die durch --filters2 angegebene Filterkette und 4 MiB Eingabe

              •  Die durch --filters2 angegebene Filterkette und 4 MiB Eingabe

              •  Die vorgegebene Filterkette und 2 MiB Eingabe

              •  Die vorgegebene Filterkette und 4 MiB Eingabe für jeden Block bis zum Ende der Eingabe.

              Falls  Sie  eine  Größe  angeben,  welche  die  Blockgröße  des Encoders übersteigen (entweder den
              Vorgabewert im Thread-Modus oder den mit --block-size=Größe angegebenen Wert),  wird  der  Encoder
              zusätzliche  Blöcke erzeugen, wobei die in den Blöcke angegebenen Grenzen eingehalten werden. Wenn
              Sie zum  Beispiel  --block-size=10MiB  --block-list=5MiB,10MiB,8MiB,12MiB,24MiB  angeben  und  die
              Eingabedatei  80  MiB  groß  ist, erhalten Sie 11 Blöcke: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 und 1
              MiB.

              Im Multi-Thread-Modus werden die Blockgrößen in den Block-Headern gespeichert. Dies  geschieht  im
              Einzel-Thread-Modus  nicht,  daher  wird  die  kodierte Ausgabe zu der im Multi-Thread-Modus nicht
              identisch sein.

       --flush-timeout=Zeit
              löscht  bei  der  Kompression  die  ausstehenden  Daten  aus  dem  Encoder  und   macht   sie   im
              Ausgabedatenstrom  verfügbar,  wenn  mehr  als  die angegebene Zeit in Millisekunden (als positive
              Ganzzahl) seit dem vorherigen Löschen vergangen ist und das  Lesen  weiterer  Eingaben  blockieren
              würde.  Dies  kann nützlich sein, wenn xz zum Komprimieren von über das Netzwerk eingehenden Daten
              verwendet wird. Kleine Zeit-Werte machen die Daten unmittelbar nach dem Empfang nach einer  kurzen
              Verzögerung verfügbar, während große Zeit-Werte ein besseres Kompressionsverhältnis bewirken.

              Dieses  Funktionsmerkmal ist standardmäßig deaktiviert. Wenn diese Option mehrfach angegeben wird,
              ist die zuletzt angegebene wirksam. Für die Angabe der Zeit kann der spezielle  Wert  0  verwendet
              werden, um dieses Funktionsmerkmal explizit zu deaktivieren.

              Dieses Funktionsmerkmal ist außerhalb von POSIX-Systemen nicht verfügbar.

              Dieses Funktionsmerkmal ist noch experimentell. Gegenwärtig ist xz aufgrund der Art und Weise, wie
              xz puffert, für Dekompression in Echtzeit ungeeignet.

       --no-sync
              synchronisiert  die  Zieldatei  und  deren  Verzeichnis  auf  dem  Speichergerät  nicht, bevor die
              Quelldatei gelöscht wird. So kann die Performance beim  Komprimieren  oder  Dekomprimieren  vieler
              kleiner Dateien verbessert werden. Jedoch wäre es möglich, falls es kurz nach dem Löschen zu einem
              Systemabsturz  kommt,  dass  die  Zieldatei noch nicht auf dem Speichergerät geschrieben, aber der
              Löschvorgang bereits ausgeführt wurde. In diesem Fall gehen sowohl die  Quelldatei  als  auch  die
              Zieldatei verloren.

              Diese  Option  ist  nur  wirksam,  wenn  xz  die Quelldatei löscht. In anderen Fällen wird niemals
              synchronisiert.

              Die Synchronisierung und --no-sync wurden in Version xz 5.7.1alpha hinzugefügt.

       --memlimit-compress=Grenze
              legt eine Grenze für die Speichernutzung bei der Kompression  fest.  Wenn  diese  Option  mehrmals
              angegeben wird, ist die zuletzt angegebene wirksam.

              Falls  die Kompressionseinstellungen die Grenze überschreiten, versucht xz, die Einstellungen nach
              unten anzupassen, so dass die Grenze nicht mehr überschritten wird und  zeigt  einen  Hinweis  an,
              dass   eine  automatische  Anpassung  vorgenommen  wurde.  Die  Anpassungen  werden  in  folgender
              Reihenfolge angewendet: Reduzierung der Anzahl der Threads,  Wechsel  in  den  Einzelthread-Modus,
              falls  sogar ein einziger Thread im Multithread-Modus die Grenze überschreitet, und schlussendlich
              die Reduzierung der Größe des LZMA2-Wörterbuchs.

              Beim Komprimieren mit --format=raw oder falls --no-adjust angegeben wurde, wird nur die Anzahl der
              Threads reduziert, da nur so die komprimierte Ausgabe nicht beeinflusst wird.

              Falls die Grenze nicht anhand der vorstehend beschriebenen Anpassungen gesetzt werden  kann,  wird
              ein Fehler angezeigt und xz wird mit dem Exit-Status 1 beendet.

              Die Grenze kann auf verschiedene Arten angegeben werden:

              •  Die  Grenze kann ein absoluter Wert in Byte sein. Ein Suffix wie MiB kann dabei hilfreich sein.
                 Beispiel: --memlimit-compress=80MiB.

              •  Die Grenze kann als Prozentsatz des physischen Gesamtspeichers (RAM) angegeben werden. Dies ist
                 insbesondere nützlich, wenn in einem Shell-Initialisierungsskript, das mehrere unterschiedliche
                 Rechner gemeinsam verwenden, die Umgebungsvariable XZ_DEFAULTS gesetzt ist. Auf diese Weise ist
                 die Grenze auf Systemen mit mehr Speicher höher. Beispiel: --memlimit-compress=70%

              •  Mit 0 kann  die  Grenze  auf  den  Standardwert  zurückgesetzt  werden.  Dies  ist  gegenwärtig
                 gleichbedeutend mit dem Setzen der Grenze auf max (keine Speicherbegrenzung).

              Für  die  32-Bit-Version  von  xz gibt es einen Spezialfall: Falls die Grenze über 4020 MiB liegt,
              wird die Grenze auf 4020 MiB gesetzt. Auf MIPS32 wird stattdessen 2000 MB verwendet (die  Werte  0
              und  max  werden  hiervon  nicht  beeinflusst;  für  die Dekompression gibt es keine vergleichbare
              Funktion). Dies kann hilfreich sein, wenn ein 32-Bit-Executable auf einen 4 GiB großen  Adressraum
              (2  GiB  auf MIPS32) zugreifen kann, wobei wir hoffen wollen, dass es in anderen Situationen keine
              negativen Effekte hat.

              Siehe auch den Abschnitt Speicherbedarf.

       --memlimit-decompress=Grenze
              legt eine Begrenzung des Speicherverbrauchs für die Dekompression fest. Dies beeinflusst auch  den
              Modus  --list.  Falls  die  Aktion nicht ausführbar ist, ohne die Grenze zu überschreiten, gibt xz
              eine Fehlermeldung aus und die Dekompression wird fehlschlagen.  Siehe  --memlimit-compress=Grenze
              zu möglichen Wegen, die Grenze anzugeben.

       --memlimit-mt-decompress=Grenze
              legt  eine  Begrenzung des Speicherverbrauchs für Multithread-Dekompression fest. Dies beeinflusst
              lediglich die  Anzahl  der  Threads;  xz  wird  dadurch  niemals  die  Dekompression  einer  Datei
              verweigern.  Falls  die Grenze für jegliches Multithreading zu niedrig ist, wird sie ignoriert und
              xz  setzt  im  Einzelthread-modus  fort.  Beachten  Sie  auch,  dass  bei   der   Verwendung   von
              --memlimit-decompress  dies  stets  sowohl auf den Einzelthread-als auch auf den Multithread-Modus
              angewendet wird und so die effektive Grenze für den Multithread-Modus niemals höher sein wird  als
              die mit --memlimit-decompress gesetzte Grenze.

              Im    Gegensatz    zu    anderen    Optionen    zur    Begrenzung   des   Speicherverbrauchs   hat
              --memlimit-mt-decompress=Grenze eine systemspezifisch vorgegebene  Grenze.  Mit  xz  --info-memory
              können Sie deren aktuellen Wert anzeigen lassen.

              Diese  Option  und  ihr Standardwert existieren, weil die unbegrenzte threadbezogene Dekompression
              bei einigen Eingabedateien  zu  unglaublich  großem  Speicherverbrauch  führen  würde.  Falls  die
              vorgegebene  Grenze  auf Ihrem System zu niedrig ist, können Sie die Grenze durchaus erhöhen, aber
              setzen Sie sie niemals auf einen Wert größer als die Menge des  nutzbaren  Speichers,  da  xz  bei
              entsprechenden  Eingabedateien  versuchen  wird,  diese  Menge an Speicher auch bei einer geringen
              Anzahl   von   Threads   zu   verwnden.   Speichermangel   oder   Auslagerung    verbessern    die
              Dekomprimierungsleistung nicht.

              Siehe  --memlimit-compress=Grenze  für mögliche Wege zur Angabe der Grenze. Sezen der Grenze auf 0
              setzt die Grenze auf den vorgegebenen systemspezifischen Wert zurück.

       -M Grenze, --memlimit=Grenze, --memory=Grenze
              Dies   ist    gleichbedeutend    mit    --memlimit-compress=Grenze    --memlimit-decompress=Grenze
              --memlimit-mt-decompress=Grenze.

       --no-adjust
              zeigt  einen  Fehler  an und beendet, falls die Grenze der Speichernutzung nicht ohne Änderung der
              Einstellungen, welche die komprimierte  Ausgabe  beeinflussen,  berücksichtigt  werden  kann.  Das
              bedeutet,   dass   xz   daran   gehindert   wird,   den   Encoder  vom  Multithread-Modus  in  den
              Einzelthread-Modus zu versetzen und die Größe des LZMA2-Wörterbuchs zu reduzieren. Allerdings kann
              bei Verwendung dieser Option dennoch die Anzahl der Threads reduziert werden, um  die  Grenze  der
              Speichernutzung zu halten, sofern dies die komprimierte Ausgabe nicht beeinflusst.

              Die automatische Anpassung ist beim Erzeugen von Rohdatenströmen (--format=raw) immer deaktiviert.

       -T Threads, --threads=Threads
              gibt die Anzahl der zu verwendenden Arbeits-Threads an. Wenn Sie Threads auf einen speziellen Wert
              0  setzen, verwendet xz maximal so viele Threads, wie der/die Prozessor(en) im System untestützen.
              Die tatsächliche Anzahl kann geringer sein als die  angegebenen  Threads,  wenn  die  Eingabedatei
              nicht  groß  genug  für  Threading  mit den gegebenen Einstellungen ist oder wenn mehr Threads die
              Speicherbegrenzung übersteigen würden.

              Die  Multithread-  bzw.  Einzelthread-Kompressoren   erzeugen   unterschiedliche   Ausgaben.   Der
              Einzelthread-Kompressor   erzeugt   die   geringste   Dateigröße,   aber   nur   die  Ausgabe  des
              Multithread-Kompressors kann mit mehreren Threads wieder  dekomprimiert  werden.  Das  Setzen  der
              Anzahl  der Threads auf 1 wird den Einzelthread-Modus verwenden. Das Setzen der Anzahl der Threads
              auf einen anderen Wert einschließlich 0 verwendet den Multithread-Kompressor, und zwar sogar dann,
              wenn das System nur einen einzigen Hardware-Thread unterstützt (xz 5.2.x verwendete in diesem Fall
              noch den Einzelthread-Modus).

              Um den Multithread-Modus mit nur einem einzigen Thread zu verwenden, setzen  Sie  die  Anzahl  der
              Threads  auf  +1. Das Präfix + hat mit Werten verschieden von 1 keinen Effekt. Eine Begrenzung des
              Speicherverbrauchs kann xz dennoch veranlassen, den Einzelthread-Modus zu  verwenden,  außer  wenn
              --no-adjust verwendet wird. Die Unterstützung für das Präfix + wurde in xz 5.4.0 hinzugefügt.

              Falls  das  automatische  Setzen  der  Anzahl der Threads angefordert und keine Speicherbegrenzung
              angegeben wurde, dann wird eine systemspezifisch vorgegebene weiche Grenze verwendet, um eventuell
              die Anzahl der Threads zu begrenzen. Es ist eine weiche Grenze im Sinne davon, dass sie  ignoriert
              wird,  falls  die  Anzahl  der  Threads  1  ist;  daher  wird eine weiche Grenze xz niemals an der
              Kompression oder Dekompression hindern. Diese vorgegebene weiche Grenze veranlasst xz  nicht,  vom
              Multithread-Modus  in  den  Einzelthread-Modus zu wechseln. Die aktiven Grenzen können Sie mit dem
              Befehl xz --info-memory anzeigen lassen.

              Die gegenwärtig einzige Threading-Methode teilt  die  Eingabe  in  Blöcke  und  komprimiert  diese
              unabhängig voneinander. Die vorgegebene Blockgröße ist von der Kompressionsstufe abhängig und kann
              mit der Option --block-size=Größe außer Kraft gesetzt werden.

              Eine  thread-basierte  Dekompression  wird  nur  bei Dateien funktionieren, die mehrere Blöcke mit
              Größeninformationen in deren Headern enthalten. Alle im Multi-Thread-Modus komprimierten  Dateien,
              die groß genug sind, erfüllen diese Bedingung, im Einzel-Thread-Modus komprimierte Dateien dagegen
              nicht, selbst wenn --block-size=Größe verwendet wurde.

              Der Vorgabewert für Threads is 0. In xz 5.4.x und älteren Versionen ist der Vorgabewert 1.

   Benutzerdefinierte Filterketten für die Kompression
       Eine  benutzerdefinierte  Filterkette  ermöglicht  die  Angabe  detaillierter  Kompressionseinstellungen,
       anstatt von den Voreinstellungen auszugehen. Wenn eine  benutzerdefinierte  Filterkette  angegeben  wird,
       werden  die  vorher in der Befehlszeile angegebenen Voreinstellungsoptionen (-0-9 und --extreme) außer
       Kraft  gesetzt.  Wenn  eine  Voreinstellungsoption   nach   einer   oder   mehreren   benutzerdefinierten
       Filterkettenoptionen  angegeben wird, dann wird die neue Voreinstellung wirksam und die zuvor angegebenen
       Filterkettenoptionen werden außer Kraft gesetzt.

       Eine Filterkette ist mit dem Piping  (der  Weiterleitung)  in  der  Befehlszeile  vergleichbar.  Bei  der
       Kompression  gelangt  die  unkomprimierte  Eingabe  in  den ersten Filter, dessen Ausgabe wiederum in den
       zweiten Filter geleitet wird (sofern ein solcher vorhanden ist). Die Ausgabe des letzten Filters wird  in
       die  komprimierte  Datei  geschrieben.  In  einer  Filterkette  sind  maximal  vier Filter zulässig, aber
       typischerweise besteht eine Filterkette nur aus einem oder zwei Filtern.

       Bei vielen Filtern ist die Positionierung in der Filterkette eingeschränkt: Einige Filter  sind  nur  als
       letzte  in  der  Kette  verwendbar,  einige  können  nicht  als  letzte Filter gesetzt werden, und andere
       funktionieren an beliebiger Stelle. Abhängig von dem Filter  ist  diese  Beschränkung  entweder  auf  das
       Design des Filters selbst zurückzuführen oder ist aus Sicherheitsgründen vorhanden.

       Eine  benutzerdefinierte  Filterkette  kann  auf  zwei  verschiedene Arten angegeben werden. Die Optionen
       --filters=Filter  und  --filters1=Filter--filters9=Filter  ermöglichen  die  Angabe   einer   ganzen
       Filterkette  in einer einzelnen Option gemäß der Liblzma-Filterzeichenkettensyntax. Alternativ können Sie
       eine Filterkette mit einer oder mehreren individuellen Filteroptionen in der Reihenfolge angeben, in  der
       sie   in   der  Filterkette  verwendet  werden  sollen.  Daher  ist  die  Reihenfolge  der  individuellen
       Filteroptionen wichtig! Beim Dekodieren von Rohdatenströmen (--format=raw) muss die  Filterkette  in  der
       gleichen  Reihenfolge  wie  bei  der  Komprimierung  angegeben  werden.  Alle  individuellen Filter- oder
       Voreinstellungsoptionen, die vor  der  vollen  Filterkettenoption  (--filters=Filter)  angegeben  werden,
       werden  verworfen.  Individuelle  Filter, die nach der vollen Filterkettenoption angegeben werden, setzen
       die Filterkette zurück

       Sowohl vollständige als auch individuelle Filteroptionen akzeptieren filterspezifische Optionen in  einer
       durch  Kommata  getrennten  Liste.  Zusätzliche Kommata in den Optionen werden ignoriert. Jede Option hat
       einen Standardwert, daher brauchen Sie nur jene anzugeben, die Sie ändern wollen.

       Um die gesamte Filterkette und die Optionen anzuzeigen, rufen Sie xz -vv auf (was gleichbedeutend mit der
       zweimaligen Angabe von --verbose ist). Dies funktioniert auch zum Betrachten der von den Voreinstellungen
       verwendeten Filterkettenoptionen.

       --filters=Filter
              gibt die vollständige Filterkette oder eine Voreinstellung in einer einzelnen Option  an.  Mehrere
              Filter  können  durch Leerzeichen oder zwei Minuszeichen (--) voneinander getrennt werden. Es kann
              notwendig sein, die Filter in der Shell-Befehlszeile zu maskieren,  so  dass  diese  als  einzelne
              Option  ausgewertet  werden.  Um  Optionen  Werte  zuzuordnen,  verwenden  Sie  :  oder  =.  Einer
              Voreinstellung kann ein - vorangestellt werden, dem  keiner  oder  mehrere  Schalter  folgen.  Der
              einzige unterstützte Schalter ist e zum Anwenden der gleichen Optionen wie --extreme.

       --filters1=Filter--filters9=Filter
              gibt bis zu neun optionale Filterketten an, die mit --block-list verwendet werden können.

              Wenn  Sie beispielsweise ein Archiv mit ausführbaren Dateien gefolgt von Textdateien komprimieren,
              könnte der Teil mit den ausführbaren  Dateien  eine  Filterkette  mit  einem  BCJ-Filter  und  der
              Textdateiteil lediglich den LZMA2-Filter verwenden.

       --filters-help
              zeigt  eine  Hilfemeldung  an,  welche  beschreibt,  wie  Voreinstellungen  und benutzerdefinierte
              Filterketten in den Optionen --filters und --filters1=Filter--filters9=Filter angegeben werden
              und beendet das Programm.

       --lzma1[=Optionen]
       --lzma2[=Optionen]
              fügt LZMA1- oder LZMA2-Filter zur Filterkette hinzu. Diese Filter können nur als letzte Filter  in
              der Kette verwendet werden.

              LZMA1  ist  ein veralteter Filter, welcher nur wegen des veralteten .lzma-Dateiformats unterstützt
              wird, welches nur LZMA1 unterstützt. LZMA2 ist eine aktualisierte Version von LZMA1, welche einige
              praktische Probleme von LZMA1 behebt. Das .xz-Format verwendet LZMA2  und  unterstützt  LZMA1  gar
              nicht. Kompressionsgeschwindigkeit und -verhältnis sind bei LZMA1 und LZMA2 praktisch gleich.

              LZMA1 und LZMA2 haben die gleichen Optionen:

              preset=Voreinstellung
                     setzt  alle  LZMA1- oder LZMA2-Optionen auf die Voreinstellung zurück. Diese Voreinstellung
                     wird in Form einer Ganzzahl angegeben, der ein aus einem einzelnen  Buchstaben  bestehender
                     Voreinstellungsmodifikator  folgen  kann.  Die Ganzzahl kann 0 bis 9 sein, entsprechend den
                     Befehlszeilenoptionen -0-9. Gegenwärtig ist e der einzige unterstützte Modifikator,  was
                     --extreme entspricht. Wenn keine Voreinstellung angegeben ist, werden die Standardwerte der
                     LZMA1- oder LZMA2-Optionen der Voreinstellung 6 entnommen.

              dict=Größe
                     Die   Größe   des  Wörterbuchs  (Chronikpuffers)  gibt  an,  wie  viel  Byte  der  kürzlich
                     verarbeiteten unkomprimierten Daten im Speicher behalten  werden  sollen.  Der  Algorithmus
                     versucht, sich wiederholende Byte-Abfolgen (Übereinstimmungen) in den unkomprimierten Daten
                     zu  finden  und  diese  durch  Referenzen zu den Daten zu ersetzen, die sich gegenwärtig im
                     Wörterbuch  befinden.  Je  größer  das  Wörterbuch,  umso  größer  ist  die  Chance,   eine
                     Übereinstimmung   zu  finden.  Daher  bewirkt  eine  Erhöhung  der  Größe  des  Wörterbuchs
                     üblicherweise ein besseres Kompressionsverhältnis, aber ein Wörterbuch, das größer ist  als
                     die unkomprimierte Datei, wäre Speicherverschwendung.

                     Typische  Wörterbuch-Größen liegen im Bereich von 64 KiB bis 64 MiB. Das Minimum ist 4 KiB.
                     Das Maximum für die Kompression ist gegenwärtig 1.5 GiB (1536 MiB). Bei  der  Dekompression
                     wird bereits eine Wörterbuchgröße bis zu 4 GiB minus 1 Byte unterstützt, welche das Maximum
                     für die LZMA1- und LZMA2-Datenstromformate ist.

                     Die  Größe  des  Wörterbuchs  und  der  Übereinstimmungsfinder  (Üf) bestimmen zusammen den
                     Speicherverbrauch des LZMA1- oder LZMA2-Kodierers. Bei der Dekompression ist ein Wörterbuch
                     der gleichen Größe (oder ein noch größeres) wie bei  der  Kompression  erforderlich,  daher
                     wird der Speicherverbrauch des Dekoders durch die Größe des bei der Kompression verwendeten
                     Wörterbuchs  bestimmt.  Die .xz-Header speichern die Größe des Wörterbuchs entweder als 2^n
                     oder 2^n + 2^(n-1), so dass diese Größen für die Kompression etwas bevorzugt werden. Andere
                     Größen werden beim Speichern in den .xz-Headern aufgerundet.

              lc=lc  gibt die Anzahl der literalen Kontextbits an. Das Minimum ist 0  und  das  Maximum  4;  der
                     Standardwert ist 3. Außerdem darf die Summe von lc und lp nicht größer als 4 sein.

                     Alle  Bytes,  die  nicht  als  Übereinstimmungen kodiert werden können, werden als Literale
                     kodiert. Solche Literale sind einfache 8-bit-Bytes, die jeweils für sich kodiert werden.

                     Bei  der  Literalkodierung  wird  angenommen,  dass  die   höchsten   lc-Bits   des   zuvor
                     unkomprimierten  Bytes  mit  dem  nächsten  Byte in Beziehung stehen. Zum Beispiel folgt in
                     typischen englischsprachigen Texten auf einen Großbuchstaben  ein  Kleinbuchstabe  und  auf
                     einen Kleinbuchstaben üblicherweise wieder ein Kleinbuchstabe. Im US-ASCII-Zeichensatz sind
                     die  höchsten  drei  Bits  010  für  Großbuchstaben  und  011  für Kleinbuchstaben. Wenn lc
                     mindestens 3 ist, kann die literale Kodierung diese Eigenschaft der  unkomprimierten  Daten
                     ausnutzen.

                     Der  Vorgabewert  (3)  ist  üblicherweise  gut. Wenn Sie die maximale Kompression erreichen
                     wollen, versuchen Sie lc=4. Manchmal hilft es ein wenig, doch  manchmal  verschlechtert  es
                     die Kompression. Im letzteren Fall versuchen Sie zum Beispiel auch lc=2.

              lp=lp  gibt  die  Anzahl  der literalen Positionsbits an. Das Minimum ist 0 und das Maximum 4; die
                     Vorgabe ist 0.

                     Lp beeinflusst, welche Art der Ausrichtung der  unkomprimierten  Daten  beim  Kodieren  von
                     Literalen angenommen wird. Siehe pb weiter unten für weitere Informationen zur Ausrichtung.

              pb=Anzahl
                     legt  die Anzahl der Positions-Bits fest. Das Minimum ist 0 und das Maximum 4; Standard ist
                     2.

                     Pb beeinflusst, welche Art der Ausrichtung der unkomprimierten  Daten  generell  angenommen
                     wird.  Standardmäßig  wird eine Vier-Byte-Ausrichtung angenommen (2^pb=2^2=4), was oft eine
                     gute Wahl ist, wenn es keine bessere Schätzung gibt.

                     Wenn die Ausrichtung bekannt ist, kann das entsprechende Setzen von pb die  Dateigröße  ein
                     wenig  verringern. Wenn Textdateien zum Beispiel eine Ein-Byte-Ausrichtung haben (US-ASCII,
                     ISO-8859-*, UTF-8), kann  das  Setzen  von  pb=0  die  Kompression  etwas  verbessern.  Für
                     UTF-16-Text  ist  pb=1  eine  gute  Wahl.  Wenn  die  Ausrichtung  eine  ungerade  Zahl wie
                     beispielsweise 3 Byte ist, könnte pb=0 die beste Wahl sein.

                     Obwohl die angenommene Ausrichtung mit pb und lp angepasst werden  kann,  bevorzugen  LZMA1
                     und  LZMA2  noch  etwas die 16-Byte-Ausrichtung. Das sollten Sie vielleicht beim Design von
                     Dateiformaten berücksichtigen, die wahrscheinlich oft  mit  LZMA1  oder  LZMA2  komprimiert
                     werden.

              mf=Üf  Der Übereinstimmungsfinder hat einen großen Einfluss auf die Geschwindigkeit des Kodierers,
                     den  Speicherbedarf  und  das  Kompressionsverhältnis.  Üblicherweise  sind auf Hash-Ketten
                     basierende Übereinstimmungsfinder schneller als jene, die  mit  Binärbäumen  arbeiten.  Die
                     Vorgabe  hängt  von der Voreinstellungsstufe ab: 0 verwendet hc3, 1-3 verwenden hc4 und der
                     Rest verwendet bt4.

                     Die folgenden Übereinstimmungsfinder werden unterstützt. Die  Formeln  zur  Ermittlung  des
                     Speicherverbrauchs  sind  grobe  Schätzungen,  die  der  Realität  am nächsten kommen, wenn
                     Wörterbuch eine Zweierpotenz ist.

                     hc3    Hash-Kette mit 2- und 3-Byte-Hashing
                            Minimalwert für nice: 3
                            Speicherbedarf:
                            dict * 7,5 (falls dict <= 16 MiB);
                            dict * 5,5 + 64 MiB (falls dict > 16 MiB)

                     hc4    Hash-Kette mit 2-, 3- und 4-Byte-Hashing
                            Minimaler Wert für nice: 4
                            Speicherbedarf:
                            dict * 7,5 (falls dict <= 32 MiB ist);
                            dict * 6,5 (falls dict > 32 MiB ist)

                     bt2    Binärbaum mit 2-Byte-Hashing
                            Minimaler Wert für nice: 2
                            Speicherverbrauch: dict * 9.5

                     bt3    Binärbaum mit 2- und 3-Byte-Hashing
                            Minimalwert für nice: 3
                            Speicherbedarf:
                            dict * 11,5 (falls dict <= 16 MiB ist);
                            dict * 9,5 + 64 MiB (falls dict > 16 MiB ist)

                     bt4    Binärbaum mit 2-, 3- und 4-Byte-Hashing
                            Minimaler Wert für nice: 4
                            Speicherbedarf:
                            dict * 11,5 (falls dict <= 32 MiB ist);
                            dict * 10,5 (falls dict > 32 MiB ist)

              mode=Modus
                     gibt die Methode zum Analysieren der vom Übereinstimmungsfinder gelieferten Daten  an.  Als
                     Modi werden fast und normal unterstützt. Die Vorgabe ist fast für die Voreinstellungsstufen
                     0-3 und normal für die Voreinstellungsstufen 4-9.

                     Üblicherweise  wird  fast  mit  Hashketten-basierten Übereinstimmungsfindern und normal mit
                     Binärbaum-basierten   Übereinstimmungsfindern   verwendet.   So   machen   es   auch    die
                     Voreinstellungsstufen.

              nice=nice
                     gibt an, was als annehmbarer Wert für eine Übereinstimmung angesehen werden kann. Wenn eine
                     Übereinstimmung  gefunden  wird, die mindestens diesen nice-Wert hat, sucht der Algorithmus
                     nicht weiter nach besseren Übereinstimmungen.

                     Der  nice-Wert  kann  2-273  Byte  sein.  Höhere  Werte   tendieren   zu   einem   besseren
                     Kompressionsverhältnis,  aber  auf  Kosten  der  Geschwindigkeit. Die Vorgabe hängt von der
                     Voreinstellungsstufe ab.

              depth=Tiefe
                     legt die maximale Suchtiefe im Übereinstimmungsfinder fest. Vorgegeben  ist  der  spezielle
                     Wert  0,  der  den  Kompressor  veranlasst,  einen  annehmbaren  Wert  für Tiefe aus Üf und
                     nice-Wert zu bestimmen.

                     Die angemessene Tiefe für Hash-Ketten ist 4-100 und 16-1000 für Binärbäume. Hohe Werte  für
                     die  Tiefe  können  den Kodierer bei einigen Dateien extrem verlangsamen. Vermeiden Sie es,
                     die Tiefe über einen Wert von 100  zu  setzen,  oder  stellen  Sie  sich  darauf  ein,  die
                     Kompression abzubrechen, wenn sie zu lange dauert.

              Beim  Dekodieren von Rohdatenströmen (--format=raw) benötigt LZMA2 nur die Wörterbuch-Größe. LZMA1
              benötigt außerdem lc, lp und pb.

       --x86[=Optionen]
       --arm[=Optionen]
       --armthumb[=Optionen]
       --arm64[=Optionen]
       --powerpc[=Optionen]
       --ia64[=Optionen]
       --sparc[=Optionen]
       --riscv[=Optionen]
              fügt ein »Branch/Call/Jump«-(BCJ-)Filter zur Filterkette hinzu.  Diese  Filter  können  nicht  als
              letzter Filter in der Filterkette verwendet werden.

              Ein  BCJ-Filter  wandelt  relative Adressen im Maschinencode in deren absolute Gegenstücke um. Die
              Datengröße wird dadurch nicht geändert, aber die Redundanz erhöht, was LZMA2  dabei  helfen  kann,
              eine  um  10  bis 15% kleinere .xz-Datei zu erstellen. Die BCJ-Filter sind immer reversibel, daher
              verursacht die Anwendung eines BCJ-Filters auf den falschen Datentyp  keinen  Datenverlust,  wobei
              aber  das  Kompressionsverhältnis etwas schlechter werden könnte. Die BCJ-Filter sind sehr schnell
              und verbrauchen nur wenig mehr Speicher.

              Diese BCJ-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:

              •  In einigen Dateitypen, die ausführbaren Code enthalten (zum Beispiel  Objektdateien,  statische
                 Bibliotheken  und  Linux-Kernelmodule),  sind  die  Adressen  in den Anweisungen mit Füllwerten
                 gefüllt. Diese BCJ-Filter führen dennoch die Adressumwandlung aus, wodurch die Kompression  bei
                 diesen Dateien schlechter wird.

              •  Falls   ein   BCJ-Filter   auf   ein   Archiv   angewendet  wird,  ist  es  möglich,  dass  das
                 Kompressionsverhältnis schlechter als ohne Filter wird. Falls es beispielsweise  ähnliche  oder
                 sogar identische ausführbare Dateien gibt, dann werden diese durch die Filterung wahrscheinlich
                 »unähnlicher«    und    verschlechtern   dadurch   das   Kompressionsverhältnis.   Der   Inhalt
                 nicht-ausführbarer Dateien im gleichen Archiv kann sich  ebenfalls  darauf  auswirken.  In  der
                 Praxis  werden  Sie  durch  Versuche  mit  oder ohne BCJ-Filter selbst herausfinden müssen, was
                 situationsbezogen besser ist.

              Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen: Die ausführbare Datei muss in  den
              Eingabedateien einem Vielfachen dieses Wertes entsprechen, damit dieser Filter funktioniert.

                     Filter      Ausrichtung   Hinweise
                     x86              1        32-Bit oder 64-Bit x86
                     ARM              4
                     ARM-Thumb        2
                     ARM64            4        4096-Byte-Ausrichtung ist optimal
                     PowerPC          4        Nur Big Endian
                     IA-64           16        Itanium
                     SPARC            4
                     RISC-V           2

              Da   die   BCJ-gefilterten   Daten   üblicherweise   mit   LZMA2   komprimiert   sind,   kann  das
              Kompressionsverhältnis dadurch etwas verbessert werden, dass die LZMA2-Optionen so gesetzt werden,
              dass sie der Ausrichtung des gewählten BCJ-Filters entsprechen. Beispiele:

              •  Der IA-64-Filter hat eine 16-Byte-Ausrichtung,  daher  ist  pb=4,lp=4,lc=0  für  LZMA2  passend
                 (2^4=16).

              •  RISC-V-Code   hat   eine   2-Byte-  oder  4-Byte-Ausrichtung,  abhängig  davon,  ob  die  Datei
                 16-bit-komprimierte  Instruktionen  enthält  (die  C-Erweiterung).  Wenn   16-bit-Instruktionen
                 verwendet    werden,    ist    pb=2,lp=1,lc=3   oder   pb=1,lp=1,lc=3   passend.   Wenn   keine
                 16-bit-Instruktionen vorhanden sind, ist pb=2,lp=2,lc=2 am besten. Mit readelf  -h  können  Sie
                 überprüfen, ob »RVC« in der »Flags«-Zeile auftritt.

              •  ARM64 hat stets eine 4-Byte-Ausrichtung, daher ist pb=2,lp=2,lc=2 am besten.

              •  Der  x86-Filter  stellt  eine  Ausnahme  dar.  Es  ist  üblicherweise  eine  gute Wahl, bei den
                 Voreinstellungen von LZMA2  (pb=2,lp=0,lc=3)  zu  bleiben,  wenn  Sie  ausführbare  x86-Dateien
                 komprimieren

              Alle BCJ-Filter unterstützen die gleichen Optionen:

              start=Versatz
                     gibt den Start-Versatz an, der bei der Umwandlung zwischen relativen und absoluten Adressen
                     verwendet  wird.  Der  Versatz  muss  ein  Vielfaches der Filterausrichtung sein (siehe die
                     Tabelle oben). Der Standardwert ist 0. In der  Praxis  ist  dieser  Standardwert  gut;  die
                     Angabe eines benutzerdefinierten Versatzes ist fast immer unnütz.

       --delta[=Optionen]
              fügt den Delta-Filter zur Filterkette hinzu. Der Delta-Filter kann nicht als letzter Filter in der
              Filterkette verwendet werden.

              Gegenwärtig  wird nur eine einfache, Byte-bezogene Delta-Berechnung unterstützt. Beim Komprimieren
              von zum Beispiel unkomprimierten Bitmap-Bildern oder unkomprimierten PCM-Audiodaten kann es jedoch
              sinnvoll sein. Dennoch  können  für  spezielle  Zwecke  entworfene  Algorithmen  deutlich  bessere
              Ergebnisse  als  Delta und LZMA2 liefern. Dies trifft insbesondere auf Audiodaten zu, die sich zum
              Beispiel mit flac(1) schneller und besser komprimieren lassen.

              Unterstützte Optionen:

              dist=Abstand
                     gibt den Abstand der Delta-Berechnung in Byte an. Zulässige Werte für den  Abstand  sind  1
                     bis 256. Der Vorgabewert ist 1.

                     Zum  Beispiel wird mit dist=2 und der 8-Byte-Eingabe A1 B1 A2 B3 A3 B5 A4 B7 die Ausgabe A1
                     B1 01 02 01 02 01 02 sein.

   Andere Optionen
       -q, --quiet
              unterdrückt Warnungen und Hinweise.  Geben  Sie  dies  zweimal  an,  um  auch  Fehlermeldungen  zu
              unterdrücken.  Diese Option wirkt sich nicht auf den Exit-Status aus. Das bedeutet, das selbst bei
              einer unterdrückten Warnung der Exit-Status zur Anzeige einer Warnung dennoch verwendet wird.

       -v, --verbose
              bewirkt ausführliche Ausgaben. Wenn die Standardfehlerausgabe mit einem  Terminal  verbunden  ist,
              zeigt  xz  den  Fortschritt  an.  Durch  zweimalige  Angabe  von  --verbose  wird die Ausgabe noch
              ausführlicher.

              Der Fortschrittsanzeiger stellt die folgenden Informationen dar:

              •  Der Prozentsatz des Fortschritts wird angezeigt, wenn die Größe der Eingabedatei  bekannt  ist.
                 Das bedeutet, dass der Prozentsatz in Weiterleitungen (Pipes) nicht angezeigt werden kann.

              •  Menge der erzeugten komprimierten Daten (bei der Kompression) oder der verarbeiteten Daten (bei
                 der Dekompression).

              •  Menge  der  verarbeiteten  unkomprimierten Daten (bei der Kompression) oder der erzeugten Daten
                 (bei der Dekompression).

              •  Kompressionsverhältnis, das mittels Dividieren der Menge der bisher komprimierten  Daten  durch
                 die Menge der bisher verarbeiteten unkomprimierten Daten ermittelt wird.

              •  Kompressions-   oder   Dekompressionsgeschwindigkeit.   Diese   wird   anhand   der  Menge  der
                 unkomprimierten verarbeiteten Daten (bei der Kompression) oder der Menge  der  erzeugten  Daten
                 (bei  der  Dekompression)  pro Sekunde gemessen. Die Anzeige startet einige Sekunden nachdem xz
                 mit der Verarbeitung der Datei begonnen hat.

              •  Die vergangene Zeit im Format M:SS oder H:MM:SS.

              •  Die geschätzte verbleibende Zeit wird nur angezeigt, wenn die Größe  der  Eingabedatei  bekannt
                 ist  und  bereits  einige  Sekunden  vergangen  sind, nachdem xz mit der Verarbeitung der Datei
                 begonnen hat. Die Zeit wird in einem weniger präzisen Format ohne Doppelpunkte  angezeigt,  zum
                 Beispiel 2 min 30 s.

              Wenn  die Standardfehlerausgabe kein Terminal ist, schreibt xz mit --verbose nach dem Komprimieren
              oder Dekomprimieren der Datei in einer einzelnen Zeile den Dateinamen, die komprimierte Größe, die
              unkomprimierte Größe, das Kompressionsverhältnis und eventuell auch die  Geschwindigkeit  und  die
              vergangene  Zeit  in die Standardfehlerausgabe. Die Geschwindigkeit und die vergangene Zeit werden
              nur angezeigt, wenn der Vorgang mindestens ein paar Sekunden gedauert hat. Wurde der Vorgang nicht
              beendet, zum Beispiel weil ihn der Benutzer abgebrochen hat, wird  außerdem  der  Prozentsatz  des
              erreichten Verarbeitungsfortschritts aufgenommen, sofern die Größe der Eingabedatei bekannt ist.

       -Q, --no-warn
              setzt  den  Exit-Status  nicht  auf  2,  selbst  wenn eine Bedingung erfüllt ist, die eine Warnung
              gerechtfertigt hätte. Diese Option wirkt sich  nicht  auf  die  Ausführlichkeitsstufe  aus,  daher
              müssen  sowohl  --quiet  als  auch  --no-warn  angegeben  werden,  um  einerseits  keine Warnungen
              anzuzeigen und andererseits auch den Exit-Status nicht zu ändern.

       --robot
              gibt Meldungen in einem maschinenlesbaren Format aus. Dadurch soll  das  Schreiben  von  Frontends
              erleichtert  werden,  die  xz anstelle von Liblzma verwenden wollen, was in verschiedenen Skripten
              der  Fall  sein  kann.  Die  Ausgabe  mit  dieser   aktivierten   Option   sollte   über   mehrere
              xz-Veröffentlichungen stabil sein. Details hierzu finden Sie im Abschnitt ROBOTER-MODUS.

       --info-memory
              zeigt  in  einem  menschenlesbaren  Format  an,  wieviel  physischen  Speicher (RAM) und wie viele
              Prozessor-Threads das System nach Annahme von xz  hat,  sowie  die  Speicherbedarfsbegrenzung  für
              Kompression und Dekompression, und beendet das Programm erfolgreich.

       -h, --help
              zeigt  eine  Hilfemeldung  mit  den  am  häufigsten genutzten Optionen an und beendet das Programm
              erfolgreich.

       -H, --long-help
              zeigt eine Hilfemeldung an, die alle Funktionsmerkmale von xz beschreibt und beendet das  Programm
              erfolgreich.

       -V, --version
              zeigt  die  Versionsnummer  von  xz  und  Liblzma  in  einem  menschenlesbaren  Format an. Um eine
              maschinell auswertbare Ausgabe zu erhalten, geben Sie --robot vor --version an.

ROBOTER-MODUS

       Der Roboter-Modus wird mit der Option --robot aktiviert. Er bewirkt, dass die Ausgabe von xz leichter von
       anderen  Programmen  ausgewertet  werden  kann.  Gegenwärtig  wird  --robot  nur  zusammen  mit   --list,
       --filters-help,  --info-memory  und  --version  unterstützt.  In  der  Zukunft wird dieser Modus auch für
       Kompression und Dekompression unterstützt.

   Listenmodus
       xz --robot --list verwendet eine durch Tabulatoren getrennte Ausgabe. In der ersten  Spalte  jeder  Zeile
       bezeichnet eine Zeichenkette den Typ der Information, die in dieser Zeile enthalten ist:

       name   Dies  ist  stets die erste Zeile, wenn eine Datei aufgelistet wird. Die zweite Spalte in der Zeile
              enthält den Dateinamen.

       file   Diese Zeile enthält allgemeine Informationen zur  .xz-Datei.  Diese  Zeile  wird  stets  nach  der
              name-Zeile ausgegeben.

       stream Dieser  Zeilentyp  wird  nur  verwendet,  wenn  --verbose  angegeben wurde. Es gibt genau so viele
              stream-Zeilen, wie Datenströme in der .xz-Datei enthalten sind.

       block  Dieser  Zeilentyp  wird  nur  verwendet,  wenn  --verbose  angegeben  wurde.  Es  gibt  so   viele
              block-Zeilen,  wie  Blöcke  in  der  .xz-Datei.  Die  block-Zeilen werden nach allen stream-Zeilen
              angezeigt; verschiedene Zeilentypen werden nicht verschachtelt.

       summary
              Dieser Zeilentyp wird nur verwendet, wenn --verbose zwei Mal angegeben  wurde.  Diese  Zeile  wird
              nach  allen  block-Zeilen  ausgegeben.  Wie  die  file-Zeile  enthält die summary-Zeile allgemeine
              Informationen zur .xz-Datei.

       totals Diese Zeile ist immer die letzte der Listenausgabe. Sie zeigt die Gesamtanzahlen und -größen an.

       Die Spalten der file-Zeilen:
              2.  Anzahl der Datenströme in der Datei
              3.  Gesamtanzahl der Blöcke in den Datenströmen
              4.  Komprimierte Größe der Datei
              5.  Unkomprimierte Größe der Datei
              6.  Das Kompressionsverhältnis, zum Beispiel 0.123. Wenn das Verhältnis über 9.999  liegt,  werden
                  drei Minuszeichen (---) anstelle des Kompressionsverhältnisses angezeigt.
              7.  Durch   Kommata  getrennte  Liste  der  Namen  der  Integritätsprüfungen.  Für  die  bekannten
                  Überprüfungstypen werden folgende Zeichenketten verwendet: None,  CRC32,  CRC64  und  SHA-256.
                  Unknown-N  wird  verwendet,  wobei  N die Kennung der Überprüfung als Dezimalzahl angibt (ein-
                  oder zweistellig).
              8.  Gesamtgröße der Datenstromauffüllung in der Datei

       Die Spalten der stream-Zeilen:
              2.  Datenstromnummer (der erste Datenstrom ist 1)
              3.  Anzahl der Blöcke im Datenstrom
              4.  Komprimierte Startposition
              5.  Unkomprimierte Startposition
              6.  Komprimierte Größe (schließt die Datenstromauffüllung nicht mit ein)
              7.  Unkomprimierte Größe
              8.  Kompressionsverhältnis
              9.  Name der Integritätsprüfung
              10. Größe der Datenstromauffüllung

       Die Spalten der block-Zeilen:
              2.  Anzahl der in diesem Block enthaltenen Datenströme
              3.  Blocknummer relativ zum Anfang des Datenstroms (der erste Block ist 1)
              4.  Blocknummer relativ zum Anfang der Datei
              5.  Komprimierter Startversatz relativ zum Beginn der Datei
              6.  Unkomprimierter Startversatz relativ zum Beginn der Datei
              7.  Komprimierte Gesamtgröße des Blocks (einschließlich Header)
              8.  Unkomprimierte Größe
              9.  Kompressionsverhältnis
              10. Name der Integritätsprüfung

       Wenn --verbose zwei Mal angegeben wurde, werden zusätzliche Spalten in die block-Zeilen eingefügt.  Diese
       werden  mit  einem  einfachen  --verbose  nicht  angezeigt,  da  das Ermitteln dieser Informationen viele
       Suchvorgänge erfordert und daher recht langsam sein kann:
              11. Wert der Integritätsprüfung in hexadezimaler Notation
              12. Block-Header-Größe
              13. Block-Schalter: c gibt an, dass die komprimierte Größe verfügbar ist, und u gibt an, dass  die
                  unkomprimierte Größe verfügbar ist. Falls der Schalter nicht gesetzt ist, wird stattdessen ein
                  Bindestrich  (-)  angezeigt,  um  die Länge der Zeichenkette beizubehalten. In Zukunft könnten
                  neue Schalter am Ende der Zeichenkette hinzugefügt werden.
              14. Größe der  tatsächlichen  komprimierten  Daten  im  Block.  Ausgeschlossen  sind  hierbei  die
                  Block-Header, die Blockauffüllung und die Prüffelder.
              15. Größe  des  Speichers  (in  Byte),  der zum Dekomprimieren dieses Blocks mit dieser xz-Version
                  benötigt wird.
              16. Filterkette. Beachten Sie, dass die meisten der bei der Kompression verwendeten Optionen nicht
                  bekannt sein können, da in den  .xz-Headern  nur  die  für  die  Dekompression  erforderlichen
                  Optionen gespeichert sind.

       Die Spalten der summary-Zeilen:
              2.  Größe  des  Speichers  (in  Byte),  der  zum Dekomprimieren dieser Datei mit dieser xz-Version
                  benötigt wird.
              3.  yes oder no geben an,  ob  in  allen  Block-Headern  sowohl  die  komprimierte  als  auch  die
                  unkomprimierte Größe gespeichert ist.
              Seit xz 5.1.2alpha:
              4.  Minimale xz-Version, die zur Dekompression der Datei erforderlich ist

       Die Spalten der totals-Zeile:
              2.  Anzahl der Datenströme
              3.  Anzahl der Blöcke
              4.  Komprimierte Größe
              5.  Unkomprimierte Größe
              6.  Durchschnittliches Kompressionsverhältnis
              7.  Durch  Kommata  getrennte Liste der Namen der Integritätsprüfungen, die in den Dateien präsent
                  waren.
              8.  Größe der Datenstromauffüllung
              9.  Anzahl der Dateien. Dies dient dazu, die  Reihenfolge  der  vorigen  Spalten  an  die  in  den
                  file-Zeilen anzugleichen.

       Wenn --verbose zwei Mal angegeben wird, werden zusätzliche Spalten in die totals-Zeile eingefügt:
              10. Maximale  Größe  des  Speichers  (in  Byte),  der  zum  Dekomprimieren  der Dateien mit dieser
                  xz-Version benötigt wird.
              11. yes oder no geben an,  ob  in  allen  Block-Headern  sowohl  die  komprimierte  als  auch  die
                  unkomprimierte Größe gespeichert ist.
              Seit xz 5.1.2alpha:
              12. Minimale xz-Version, die zur Dekompression der Datei erforderlich ist

       Zukünftige  Versionen  könnten  neue  Zeilentypen  hinzufügen,  weiterhin könnten auch in den vorhandenen
       Zeilentypen weitere Spalten hinzugefügt werden, aber die existierenden Spalten werden nicht geändert.

   Filterhilfe
       xz --robot --filters-help gibt die unterstützten Filter im folgenden Format aus:

       Filter:Option=<Wert>,Option=<Wert>Filter Name des Filters

       Option Name der filterspezifischen Option

       Wert   Der numerische Wert erscheint als Bereich <Minimum-Maximum>. Die Auswahl  des  Zeichenketten-Werts
              wird in < > eingeschlossen und durch | getrennt.

       Jeder Filter wird in einer separaten Zeile ausgegeben.

   Informationen zur Speicherbedarfsbegrenzung
       xz --robot --info-memory gibt eine einzelne Zeile mit mehreren durch Tabulatoren getrennten Spalten aus:

       1.  Gesamter physischer Speicher (RAM) in Byte.

       2.  Speicherbedarfsbegrenzung  für die Kompression in Byte (--memlimit-compress). Ein spezieller Wert von
           0 bezeichnet die Standardeinstellung, die  im  Einzelthread-Modus  bedeutet,  dass  keine  Begrenzung
           vorhanden ist.

       3.  Speicherbedarfsbegrenzung  für die Dekompression in Byte (--memlimit-decompress). Ein spezieller Wert
           von 0 bezeichnet die Standardeinstellung, die im Einzelthread-Modus bedeutet, dass  keine  Begrenzung
           vorhanden ist.

       4.  Seit    xz    5.3.4alpha:    Die    Speichernutzung    für    Multithread-Dekompression    in    Byte
           (--memlimit-mt-decompress). Dies ist niemals 0, da ein  systemspezifischer  Vorgabewert  (gezeigt  in
           Spalte  5) verwendet wird, falls keine Grenze ausdrücklich angegeben wurde. Dies ist außerdem niemals
           größer als der Wert in in Spalte 3,  selbst  wenn  mit  --memlimit-mt-decompress  ein  größerer  Wert
           angegeben wurde.

       5.  Seit  xz  5.3.4alpha:  Eine  systemspezifisch  vorgegebene Begrenzung des Speicherverbrauchs, die zur
           Begrenzung  der  Anzahl  der  Threads  beim  Komprimieren  mit  automatischer  Anzahl   der   Threads
           (--threads=0)   und   wenn  keine  Speicherbedarfsbegrenzung  angegeben  wurde  (--memlimit-compress)
           verwendet wird. Dies wird auch als Standardwert für --memlimit-mt-decompress verwendet.

       6.  Seit xz 5.3.4alpha: Anzahl der verfügbaren Prozessorthreads.

       In der Zukunft könnte die Ausgabe von xz --robot --info-memory weitere Spalten  enthalten,  aber  niemals
       mehr als eine einzelne Zeile.

   Version
       xz --robot --version gibt die Versionsnummern von xz und Liblzma im folgenden Format aus:

       XZ_VERSION=XYYYZZZS
       LIBLZMA_VERSION=XYYYZZZS

       X      Hauptversion.

       YYY    Unterversion.  Gerade  Zahlen  bezeichnen  eine stabile Version. Ungerade Zahlen bezeichnen Alpha-
              oder Betaversionen.

       ZZZ    Patch-Stufe für stabile Veröffentlichungen oder einfach nur ein Zähler für Entwicklungsversionen.

       S      Stabilität. 0 ist Alpha, 1 ist Beta und 2 ist stabil. S sollte immer 2 sein, wenn YYY eine  gerade
              Zahl ist.

       XYYYZZZS  sind  in  beiden  Zeilen  gleich,  sofern  xz und Liblzma aus der gleichen Veröffentlichung der
       XZ-Utils stammen.

       Beispiele: 4.999.9beta ist 49990091 und 5.0.0 is 50000002.

EXIT-STATUS

       0      Alles ist in Ordnung.

       1      Ein Fehler ist aufgetreten.

       2      Es ist etwas passiert, das eine Warnung rechtfertigt, aber  es  sind  keine  tatsächlichen  Fehler
              aufgetreten.

       In  die Standardausgabe geschriebene Hinweise (keine Warnungen oder Fehler), welche den Exit-Status nicht
       beeinflussen.

UMGEBUNGSVARIABLEN

       xz wertet eine durch Leerzeichen getrennte Liste von Optionen in den Umgebungsvariablen  XZ_DEFAULTS  und
       XZ_OPT  aus (in dieser Reihenfolge), bevor die Optionen aus der Befehlszeile ausgewertet werden. Beachten
       Sie, dass beim Auswerten der Umgebungsvariablen nur Optionen berücksichtigt werden;  alle  Einträge,  die
       keine Optionen sind, werden stillschweigend ignoriert. Die Auswertung erfolgt mit getopt_long(3), welches
       auch für die Befehlszeilenargumente verwendet wird.

       Warnung:  Durch  Setzen dieser Umgebungsvariablen könnte man effektiv Programme und Skripte modifizieren,
       die xz ausführen. Meist ist es sicher, die Speichernutzungsbegrenzung und Kompressionsoptionen  über  die
       Umgebungsvariablen zu setzen. Dennoch können einige Optionen Skripte beeinflussen. Ein typisches Beispiel
       ist  die  Option  --help,  die  einen  Hilfetext  anzeigt,  anstatt  eine  Datei  zu komprimieren oder zu
       dekomprimieren. Weniger augenfällige Beispiele sind die Optionen --quiet und --verbose. In vielen  Fällen
       funktioniert  es  gut, den Fortschrittsindikator mit --verbose zu aktivieren, aber in einigen Situationen
       können die zusätzlichen Meldungen Probleme verursachen. Die Ausführlichkeitsstufe  beeinflusst  auch  das
       Verhalten von --list.

       XZ_DEFAULTS
              Benutzerspezifische  oder  systemweite  Standardoptionen.  Typischerweise  werden  diese  in einem
              Shell-Initialisierungsskript gesetzt, um die Speicherbedarfsbegrenzung  von  xz  standardmäßig  zu
              aktivieren  oder  die Anzahl der Threads festzulegen. Außer bei Shell-Initialisierungsskripten und
              in ähnlichen Spezialfällen sollte die Variable XZ_DEFAULTS in Skripten niemals gesetzt oder  außer
              Kraft gesetzt werden.

       XZ_OPT Dies  dient der Übergabe von Optionen an xz, wenn es nicht möglich ist, die Optionen direkt in der
              Befehlszeile von xz zu übergeben. Dies ist der Fall, wenn xz von einem Skript oder  Dienstprogramm
              ausgeführt wird, zum Beispiel GNU tar(1):

                     XZ_OPT=-2v tar caf foo.tar.xz foo

              Skripte  können  XZ_OPT  zum  Beispiel zum Setzen skriptspezifischer Standard-Kompressionsoptionen
              verwenden. Es  ist  weiterhin  empfehlenswert,  Benutzern  die  Außerkraftsetzung  von  XZ_OPT  zu
              erlauben, falls dies angemessen ist. Zum Beispiel könnte in sh(1)-Skripten Folgendes stehen:

                     XZ_OPT=${XZ_OPT-"-7e"}
                     export XZ_OPT

KOMPATIBILITÄT ZU DEN LZMA-UTILS

       Die  Befehlszeilensyntax  von  xz  ist  praktisch  eine  Obermenge  der von lzma, unlzma und lzcat in den
       LZMA-Utils der Versionen 4.32.x. In den meisten Fällen sollte es möglich sein, die LZMA-Utils  durch  die
       XZ-Utils   zu   ersetzen,   ohne   vorhandene   Skripte   ändern   zu  müssen.  Dennoch  gibt  es  einige
       Inkompatibilitäten, die manchmal Probleme verursachen können.

   Voreinstellungsstufen zur Kompression
       Die Nummerierung der Voreinstellungsstufen der Kompression ist in xz und den LZMA-Utils  unterschiedlich.
       Der   wichtigste   Unterschied   ist   die   Zuweisung   der   Wörterbuchgrößen   zu   den  verschiedenen
       Voreinstellungsstufen. Die Wörterbuchgröße ist etwa gleich dem Speicherbedarf bei der Dekompression.

              Stufe     xz         LZMA-Utils
               -0     256 KiB   nicht verfügbar
               -1       1 MiB           64 KiB
               -2       2 MiB            1 MiB
               -3       4 MiB          512 KiB
               -4       4 MiB            1 MiB
               -5       8 MiB            2 MiB
               -6       8 MiB            4 MiB
               -7      16 MiB            8 MiB
               -8      32 MiB           16 MiB
               -9      64 MiB           32 MiB

       Die Unterschiede in der Wörterbuchgröße beeinflussen auch den Speicherbedarf bei der Kompression, aber es
       gibt noch einige andere Unterschiede zwischen den  LZMA-Utils  und  den  XZ-Utils,  die  die  Kluft  noch
       vergrößern:

              Stufe     xz      LZMA-Utils 4.32.x
               -0       3 MiB   nicht verfügbar
               -1       9 MiB            2 MiB
               -2      17 MiB           12 MiB
               -3      32 MiB           12 MiB
               -4      48 MiB           16 MiB
               -5      94 MiB           26 MiB
               -6      94 MiB           45 MiB
               -7     186 MiB           83 MiB
               -8     370 MiB          159 MiB
               -9     674 MiB          311 MiB

       Die  standardmäßige  Voreinstellungsstufe in den LZMA-Utils ist -7, während diese in den XZ-Utils -6 ist,
       daher verwenden beide standardmäßig ein 8 MiB großes Wörterbuch.

   Vor- und Nachteile von .lzma-Dateien als Datenströme
       Die unkomprimierte Größe der Datei kann in den .lzma-Headern gespeichert werden. Die LZMA-Utils  tun  das
       beim  Komprimieren  gewöhnlicher  Dateien.  Als  Alternative  kann die unkomprimierte Größe als unbekannt
       markiert und eine Nutzdatenende-Markierung  (end-of-payload)  verwendet  werden,  um  anzugeben,  wo  der
       Dekompressor  stoppen  soll.  Die  LZMA-Utils  verwenden  diese  Methode,  wenn  die unkomprimierte Größe
       unbekannt ist, was beispielsweise in Pipes (Befehlsverkettungen) der Fall ist.

       xz unterstützt die Dekompression von .lzma-Dateien mit oder ohne Nutzdatenende-Markierung, aber alle  von
       xz  erstellten .lzma-Dateien verwenden diesen Nutzdatenende-Markierung, wobei die unkomprimierte Größe in
       den .lzma-Headern als unbekannt markiert wird. Das könnte in einigen unüblichen Situationen  ein  Problem
       sein.  Zum Beispiel könnte ein .lzma-Dekompressor in einem Gerät mit eingebettetem System nur mit Dateien
       funktionieren, deren unkomprimierte Größe bekannt ist. Falls Sie auf dieses Problem  stoßen,  müssen  Sie
       die  LZMA-Utils  oder  das  LZMA-SDK  verwenden,  um .lzma-Dateien mit bekannter unkomprimierter Größe zu
       erzeugen.

   Nicht unterstützte .lzma-Dateien
       Das .lzma-Format erlaubt lc-Werte bis zu 8 und lp-Werte bis zu  4.  Die  LZMA-Utils  können  Dateien  mit
       beliebigem  lc  und  lp  dekomprimieren,  aber erzeugen immer Dateien mit lc=3 und lp=0. Das Erzeugen von
       Dateien mit anderem lc und lp ist mit xz und mit dem LZMA-SDK möglich.

       Die Implementation des LZMA-Filters in liblzma setzt voraus, dass die Summe von lc und  lp  nicht  größer
       als  4 ist. Daher können .lzma-Dateien, welche diese Begrenzung überschreiten, mit xz nicht dekomprimiert
       werden.

       Die LZMA-Utils erzeugen nur .lzma-Dateien mit einer Wörterbuchgröße von 2^n  (einer  Zweierpotenz),  aber
       akzeptieren  Dateien mit einer beliebigen Wörterbuchgröße. Liblzma akzeptiert nur .lzma-Dateien mit einer
       Wörterbuchgröße von 2^n oder 2^n + 2^(n-1). Dies dient zum Verringern von Fehlalarmen beim  Erkennen  von
       .lzma-Dateien.

       Diese  Einschränkungen  sollten  in  der  Praxis  kein  Problem sein, da praktisch alle .lzma-Dateien mit
       Einstellungen komprimiert wurden, die Liblzma akzeptieren wird.

   Angehängter Datenmüll
       Bei der Dekompression ignorieren die LZMA-Utils stillschweigend alles nach dem  ersten  .lzma-Datenstrom.
       In  den  meisten Situationen ist das ein Fehler. Das bedeutet auch, dass die LZMA-Utils die Dekompression
       verketteter .lzma-Dateien nicht unterstützen.

       Wenn nach dem ersten .lzma-Datenstrom Daten verbleiben, erachtet xz die  Datei  als  beschädigt,  es  sei
       denn,  die  Option --single-stream wurde verwendet. Dies könnte die Ausführung von Skripten beeinflussen,
       die davon ausgehen, dass angehängter Datenmüll ignoriert wird.

ANMERKUNGEN

   Die komprimierte Ausgabe kann variieren
       Die exakte komprimierte Ausgabe, die aus der gleichen unkomprimierten  Eingabedatei  erzeugt  wird,  kann
       zwischen  den Versionen der XZ-Utils unterschiedlich sein, selbst wenn die Kompressionsoptionen identisch
       sind. Das kommt daher, weil der Kodierer verbessert worden sein  könnte  (hinsichtlich  schnellerer  oder
       besserer   Kompression),   ohne  das  Dateiformat  zu  beeinflussen.  Die  Ausgabe  kann  sogar  zwischen
       verschiedenen Programmen der gleichen Version  der  XZ-Utils  variieren,  wenn  bei  der  Erstellung  des
       Binärprogramms unterschiedliche Optionen verwendet wurden.

       Sobald   --rsyncable   implementiert  wurde,  bedeutet  das,  dass  die  sich  ergebenden  Dateien  nicht
       notwendigerweise mit Rsync abgeglichen werden können, außer wenn die alte und neue Datei mit der gleichen
       xz-Version erzeugt wurden. Das Problem kann beseitigt werden, wenn ein Teil  der  Encoder-Implementierung
       eingefroren wird, um die mit Rsync abgleichbare Ausgabe über xz-Versionsgrenzen hinweg stabil zu halten.

   Eingebettete .xz-Dekompressoren
       Eingebettete .xz-Dekompressor-Implementierungen wie XZ Embedded unterstützen nicht unbedingt Dateien, die
       mit  anderen Integritätsprüfungen (Prüfung-Typen) als none und crc32 erzeugt wurden. Da --check=crc64 die
       Voreinstellung  ist,  müssen  Sie  --check=none  oder  --check=crc32  verwenden,  wenn  Sie  Dateien  für
       eingebettete Systeme erstellen.

       Außerhalb  eingebetteter  Systeme unterstützen die Dekompressoren des .xz-Formats alle Prüfung-Typen oder
       sind mindestens in der Lage, die Datei zu dekomprimieren, ohne  deren  Integrität  zu  prüfen,  wenn  die
       bestimmte Prüfung nicht verfügbar ist.

       XZ Embedded unterstützt BCJ-Filter, aber nur mit dem vorgegebenen Startversatz.

BEISPIELE

   Grundlagen
       Komprimiert  die  Datei  foo  mit  der  Standard-Kompressionsstufe  (-6)  zu foo.xz und entfernt foo nach
       erfolgreicher Kompression:

              xz foo

       bar.xz in bar dekomprimieren und bar.xz selbst dann nicht löschen,  wenn  die  Dekompression  erfolgreich
       war:

              xz -dk bar.xz

       baz.tar.xz mit der Voreinstellung -4e (-4 --extreme) erzeugen, was langsamer ist als die Vorgabe -6, aber
       weniger Speicher für Kompression und Dekompression benötigt (48 MiB beziehungsweise 5 MiB):

              tar cf - baz | xz -4e > baz.tar.xz

       Eine Mischung aus komprimierten und unkomprimierten Dateien kann mit einem einzelnen Befehl dekomprimiert
       in die Standardausgabe geschrieben werden:

              xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt

   Parallele Kompression von vielen Dateien
       Auf GNU- und *BSD-Systemen können find(1) und xargs(1) zum Parallelisieren der Kompression vieler Dateien
       verwendet werden:

              find . -type f \! -name '*.xz' -print0 \
                  | xargs -0r -P4 -n16 xz -T1

       Die Option -P von xargs(1) legt die Anzahl der parallelen xz-Prozesse fest. Der beste Wert für die Option
       -n  hängt  davon  ab,  wie  viele  Dateien  komprimiert werden sollen. Wenn es sich nur um wenige Dateien
       handelt, sollte der Wert wahrscheinlich 1 sein; bei Zehntausenden von Dateien kann  100  oder  noch  mehr
       angemessener sein, um die Anzahl der xz-Prozesse zu beschränken, die xargs(1) schließlich erzeugen wird.

       Die  Option  -T1  für  xz  dient dazu, den Einzelthread-Modus zu erzwingen, da xargs(1) zur Steuerung des
       Umfangs der Parallelisierung verwendet wird.

   Roboter-Modus
       Berechnen, wie viel Byte nach der Kompression mehrerer Dateien insgesamt eingespart wurden:

              xz --robot --list *.xz | awk '/^totals/{print $5-$4}'

       Ein Skript könnte abfragen wollen,  ob  es  ein  xz  verwendet,  das  aktuell  genug  ist.  Das  folgende
       sh(1)-Skript  prüft, ob die Versionsnummer des Dienstprogramms xz mindestens 5.0.0 ist. Diese Methode ist
       zu alten Beta-Versionen kompatibel, welche die Option --robot nicht unterstützen:

              if ! eval "$(xz --robot --version 2> /dev/null)" ||
                      [ "$XZ_VERSION" -lt 50000002 ]; then
                  echo "Ihre Version von Xz ist zu alt."
              fi
              unset XZ_VERSION LIBLZMA_VERSION

       Eine Speicherbedarfsbegrenzung für die Dekompression  mit  XZ_OPT  setzen,  aber  eine  bereits  gesetzte
       Begrenzung nicht erhöhen:

              NEWLIM=$((123 << 20))  # 123 MiB
              OLDLIM=$(xz --robot --info-memory | cut -f3)
              if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then
                  XZ_OPT="$XZ_OPT --memlimit-decompress=$NEWLIM"
                  export XZ_OPT
              fi

   Benutzerdefinierte Filterketten für die Kompression
       Der   einfachste   Anwendungsfall   für   benutzerdefinierte   Filterketten   ist   die   Anpassung   von
       LZMA2-Voreinstellungsstufen. Das kann nützlich  sein,  weil  die  Voreinstellungen  nur  einen  Teil  der
       potenziell sinnvollen Kombinationen aus Kompressionseinstellungen abdecken.

       Die  KompCPU-Spalten  der  Tabellen  aus  den Beschreibungen der Optionen -0-9 und --extreme sind beim
       Anpassen der LZMA2-Voreinstellungen nützlich. Diese sind die relevanten Teile aus diesen zwei Tabellen:

              Voreinst.   KomprCPU
                 -0          0
                 -1          1
                 -2          2
                 -3          3
                 -4          4
                 -5          5
                 -6          6
                 -5e         7
                 -6e         8

       Wenn Sie wissen, dass eine Datei für eine gute Kompression ein etwas größeres  Wörterbuch  benötigt  (zum
       Beispiel  32  MiB),  aber Sie sie schneller komprimieren wollen, als dies mit xz -8 geschehen würde, kann
       eine Voreinstellung mit einem niedrigen KompCPU-Wert (zum Beispiel 1) dahingehend angepasst  werden,  ein
       größeres Wörterbuch zu verwenden:

              xz --lzma2=preset=1,dict=32MiB foo.tar

       Mit  bestimmten  Dateien  kann  der obige Befehl schneller sein als xz -6, wobei die Kompression deutlich
       besser wird. Dennoch  muss  betont  werden,  dass  nur  wenige  Dateien  von  einem  größeren  Wörterbuch
       profitieren,  wenn  der  KompCPU-Wert  niedrig  bleibt.  Der  offensichtlichste Fall, in dem ein größeres
       Wörterbuch  sehr hilfreich sein kann, ist ein Archiv, das einander sehr  ähnliche  Dateien  enthält,  die
       jeweils  wenigstens  einige  Megabyte  groß  sind.  Das Wörterbuch muss dann deutlich größer sein als die
       einzelne Datei, damit LZMA2 den größtmöglichen Vorteil aus den Ähnlichkeiten  der  aufeinander  folgenden
       Dateien zieht.

       Wenn  hoher  Speicherbedarf  für Kompression und Dekompression kein Problem ist und die zu komprimierende
       Datei mindestens einige Hundert Megabyte groß ist, kann es sinnvoll sein, ein noch größeres Wörterbuch zu
       verwenden, als die 64 MiB, die mit xz -9 verwendet werden würden:

              xz -vv --lzma2=dict=192MiB big_foo.tar

       Die Verwendung von -vv  (--verbose  --verbose)  wie  im  obigen  Beispiel  kann  nützlich  sein,  um  den
       Speicherbedarf  für  Kompressor  und  Dekompressor  zu  sehen. Denken Sie daran, dass ein Wörterbuch, das
       größer als die unkomprimierte Datei ist, Speicherverschwendung wäre.  Daher  ist  der  obige  Befehl  für
       kleine Dateien nicht sinnvoll.

       Manchmal  spielt  die  Kompressionszeit  keine  Rolle, aber der Speicherbedarf bei der Dekompression muss
       gering gehalten werden, zum Beispiel um die Datei auf eingebetteten Systemen  dekomprimieren  zu  können.
       Der  folgende Befehl verwendet -6e (-6 --extreme) als Basis und setzt die Wörterbuchgröße auf nur 64 KiB.
       Die sich ergebende Datei kann mit XZ Embedded (aus diesem Grund ist  dort  --check=crc32)  mit  nur  etwa
       100 KiB Speicher dekomprimiert werden.

              xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo

       Wenn  Sie  so  viele Byte wie möglich herausquetschen wollen, kann die Anpassung der Anzahl der literalen
       Kontextbits (lc) und der Anzahl der Positionsbits (pb) manchmal hilfreich sein. Auch  die  Anpassung  der
       Anzahl  der literalen Positionsbits (lp) könnte helfen, aber üblicherweise sind lc und pb wichtiger. Wenn
       ein Quellcode-Archiv zum Beispiel hauptsächlich ASCII-Text enthält, könnte ein Aufruf  wie  der  folgende
       eine etwas kleinere Datei (etwa 0,1 %) ergeben als mit xz -6e (versuchen Sie es auch lc=4):

              xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar

       Die  Verwendung  eines  anderen  Filters  mit  LZMA2  kann  die  Kompression bei verschiedenen Dateitypen
       verbessern. So könnten Sie eine gemeinsam genutzte Bibliothek der Architekturen x86-32  oder  x86-64  mit
       dem BCJ-Filter für x86 komprimieren:

              xz --x86 --lzma2 libfoo.so

       Beachten  Sie,  dass  die  Reihenfolge  der  Filteroptionen  von  Bedeutung ist. Falls --x86 nach --lzma2
       angegeben wird, gibt xz einen Fehler aus, weil nach LZMA2 kein weiterer Filter sein darf  und  auch  weil
       der BCJ-Filter für x86 nicht als letzter Filter in der Filterkette gesetzt werden darf.

       Der  Delta-Filter  zusammen  mit  LZMA2  kann  bei  Bitmap-Bildern  gute  Ergebnisse  liefern.  Er sollte
       üblicherweise besser sein als PNG, welches zwar einige fortgeschrittene  Filter  als  ein  simples  delta
       bietet, aber für die eigentliche Kompression »Deflate« verwendet.

       Das  Bild muss in einem unkomprimierten Format gespeichert werden, zum Beispiel als unkomprimiertes TIFF.
       Der Abstandsparameter des Delta-Filters muss so gesetzt werden, dass er der Anzahl der Bytes pro Pixel im
       Bild entspricht. Zum Beispiel erfordert ein 24-Bit-RGB-Bitmap dist=3, außerdem ist es gut, pb=0 an  LZMA2
       zu übergeben, um die 3-Byte-Ausrichtung zu berücksichtigen:

              xz --delta=dist=3 --lzma2=pb=0 foo.tiff

       Wenn  sich  mehrere  Bilder  in  einem  einzelnen  Archiv  befinden (zum Beispiel .tar), funktioniert der
       Delta-Filter damit auch, sofern alle Bilder im Archiv die gleiche Anzahl Bytes pro Pixel haben.

SIEHE AUCH

       xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1), bzip2(1), 7z(1)

       XZ Utils: <https://tukaani.org/xz/>
       XZ Embedded: <https://tukaani.org/xz/embedded.html>
       LZMA-SDK: <https://7-zip.org/sdk.html>

Tukaani                                           8. März 2025                                             XZ(1)