annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/de/man1/unxz.1 @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
rev   line source
jpayne@68 1 '\" t
jpayne@68 2 .\" SPDX-License-Identifier: 0BSD
jpayne@68 3 .\"
jpayne@68 4 .\" Authors: Lasse Collin
jpayne@68 5 .\" Jia Tan
jpayne@68 6 .\"
jpayne@68 7 .\" German translation for xz-man.
jpayne@68 8 .\" Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
jpayne@68 9 .\"
jpayne@68 10 .\"*******************************************************************
jpayne@68 11 .\"
jpayne@68 12 .\" This file was generated with po4a. Translate the source file.
jpayne@68 13 .\"
jpayne@68 14 .\"*******************************************************************
jpayne@68 15 .TH XZ 1 2024\-12\-30 Tukaani XZ\-Dienstprogramme
jpayne@68 16 .
jpayne@68 17 .SH BEZEICHNUNG
jpayne@68 18 xz, unxz, xzcat, lzma, unlzma, lzcat \- .xz\- und .lzma\-Dateien komprimieren
jpayne@68 19 oder dekomprimieren
jpayne@68 20 .
jpayne@68 21 .SH ÜBERSICHT
jpayne@68 22 \fBxz\fP [\fIOption…\fP] [\fIDatei…\fP]
jpayne@68 23 .
jpayne@68 24 .SH BEFEHLSALIASE
jpayne@68 25 \fBunxz\fP ist gleichbedeutend mit \fBxz \-\-decompress\fP.
jpayne@68 26 .br
jpayne@68 27 \fBxzcat\fP ist gleichbedeutend mit \fBxz \-\-decompress \-\-stdout\fP.
jpayne@68 28 .br
jpayne@68 29 \fBlzma\fP ist gleichbedeutend mit \fBxz \-\-format=lzma\fP.
jpayne@68 30 .br
jpayne@68 31 \fBunlzma\fP ist gleichbedeutend mit \fBxz \-\-format=lzma \-\-decompress\fP.
jpayne@68 32 .br
jpayne@68 33 \fBlzcat\fP ist gleichbedeutend mit \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
jpayne@68 34 .PP
jpayne@68 35 Wenn Sie Skripte schreiben, die Dateien dekomprimieren, sollten Sie stets
jpayne@68 36 den Namen \fBxz\fP mit den entsprechenden Argumenten (\fBxz \-d\fP oder \fBxz \-dc\fP)
jpayne@68 37 anstelle der Namen \fBunxz\fP und \fBxzcat\fP verwenden.
jpayne@68 38 .
jpayne@68 39 .SH BESCHREIBUNG
jpayne@68 40 \fBxz\fP ist ein Allzweckwerkzeug zur Datenkompression, dessen
jpayne@68 41 Befehlszeilensyntax denen von \fBgzip\fP(1) und \fBbzip2\fP(1) ähnelt. Das native
jpayne@68 42 Dateiformat ist das \fB.xz\fP\-Format, aber das veraltete, von den
jpayne@68 43 LZMA\-Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme
jpayne@68 44 ohne Containerformat\-Header werden ebenfalls unterstützt. Außerdem wird die
jpayne@68 45 Dekompression des von \fBlzip\fP verwendeten \fB.lz\fP\-Formats unterstützt.
jpayne@68 46 .PP
jpayne@68 47 \fBxz\fP komprimiert oder dekomprimiert jede \fIDatei\fP entsprechend des
jpayne@68 48 gewählten Vorgangsmodus. Falls entweder \fB\-\fP oder keine Datei angegeben ist,
jpayne@68 49 liest \fBxz\fP aus der Standardeingabe und leitet die verarbeiteten Dateien in
jpayne@68 50 die Standardausgabe. Wenn die Standardausgabe kein Terminal ist, verweigert
jpayne@68 51 \fBxz\fP das Schreiben komprimierter Daten in die Standardausgabe. Dabei wird
jpayne@68 52 eine Fehlermeldung angezeigt und die \fIDatei\fP übersprungen. Ebenso
jpayne@68 53 verweigert \fBxz\fP das Lesen komprimierter Daten aus der Standardeingabe, wenn
jpayne@68 54 diese ein Terminal ist.
jpayne@68 55 .PP
jpayne@68 56 \fIDateien\fP, die nicht als \fB\-\fP angegeben sind, werden in eine neue Datei
jpayne@68 57 geschrieben, deren Name aus dem Namen der Quell\-\fIDatei\fP abgeleitet wird
jpayne@68 58 (außer wenn \fB\-\-stdout\fP angegeben ist):
jpayne@68 59 .IP \(bu 3
jpayne@68 60 Bei der Kompression wird das Suffix des Formats der Zieldatei (\fB.xz\fP oder
jpayne@68 61 \&\fB.lzma\fP) an den Namen der Quelldatei angehängt und so der Name der
jpayne@68 62 Zieldatei gebildet.
jpayne@68 63 .IP \(bu 3
jpayne@68 64 Bei der Dekompression wird das Suffix \fB.xz\fP, \fB.lzma\fP oder \fB.lz\fP vom
jpayne@68 65 Dateinamen entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt
jpayne@68 66 \fBxz\fP die Suffixe \fB.txz\fP und \fB.tlz\fP und ersetzt diese durch \fB.tar\fP.
jpayne@68 67 .PP
jpayne@68 68 Wenn die Zieldatei bereits existiert, wird eine Fehlermeldung angezeigt und
jpayne@68 69 die \fIDatei\fP übersprungen.
jpayne@68 70 .PP
jpayne@68 71 Außer beim Schreiben in die Standardausgabe zeigt \fBxz\fP eine Warnung an und
jpayne@68 72 überspringt die \fIDatei\fP, wenn eine der folgenden Bedingungen zutreffend
jpayne@68 73 ist:
jpayne@68 74 .IP \(bu 3
jpayne@68 75 Die \fIDatei\fP ist keine reguläre Datei. Symbolischen Verknüpfungen wird nicht
jpayne@68 76 gefolgt und diese daher nicht zu den regulären Dateien gezählt.
jpayne@68 77 .IP \(bu 3
jpayne@68 78 Die \fIDatei\fP hat mehr als eine harte Verknüpfung.
jpayne@68 79 .IP \(bu 3
jpayne@68 80 Für die \fIDatei\fP ist das »setuid«\-, »setgid«\- oder »sticky«\-Bit gesetzt.
jpayne@68 81 .IP \(bu 3
jpayne@68 82 Der Aktionsmodus wird auf Kompression gesetzt und die \fIDatei\fP hat bereits
jpayne@68 83 das Suffix des Zieldateiformats (\fB.xz\fP oder \fB.txz\fP beim Komprimieren in
jpayne@68 84 das \fB.xz\fP\-Format und \fB.lzma\fP oder \fB.tlz\fP beim Komprimieren in das
jpayne@68 85 \&\fB.lzma\fP\-Format).
jpayne@68 86 .IP \(bu 3
jpayne@68 87 Der Aktionsmodus wird auf Dekompression gesetzt und die \fIDatei\fP hat nicht
jpayne@68 88 das Suffix eines der unterstützten Zieldateiformate (\fB.xz\fP, \fB.txz\fP,
jpayne@68 89 \&\fB.lzma\fP, \fB.tlz\fP oder \fB.lz\fP).
jpayne@68 90 .PP
jpayne@68 91 Nach erfolgreicher Kompression oder Dekompression der \fIDatei\fP kopiert \fBxz\fP
jpayne@68 92 Eigentümer, Gruppe, Zugriffsrechte, Zugriffszeit und Änderungszeit aus der
jpayne@68 93 Ursprungs\-\fIDatei\fP in die Zieldatei. Sollte das Kopieren der Gruppe
jpayne@68 94 fehlschlagen, werden die Zugriffsrechte so angepasst, dass jenen Benutzern
jpayne@68 95 der Zugriff auf die Zieldatei verwehrt bleibt, die auch keinen Zugriff auf
jpayne@68 96 die Ursprungs\-\fIDatei\fP hatten. Das Kopieren anderer Metadaten wie
jpayne@68 97 Zugriffssteuerlisten oder erweiterter Attribute wird von \fBxz\fP noch nicht
jpayne@68 98 unterstützt.
jpayne@68 99 .PP
jpayne@68 100 Sobald die Zieldatei erfolgreich geschlossen wurde, wird die
jpayne@68 101 Ursprungs\-\fIDatei\fP entfernt. Dies wird durch die Option \fB\-\-keep\fP
jpayne@68 102 verhindert. Die Ursprungs\-\fIDatei\fP wird niemals entfernt, wenn die Ausgabe
jpayne@68 103 in die Standardausgabe geschrieben wird oder falls ein Fehler auftritt.
jpayne@68 104 .PP
jpayne@68 105 Durch Senden der Signale \fBSIGINFO\fP oder \fBSIGUSR1\fP an den \fBxz\fP\-Prozess
jpayne@68 106 werden Fortschrittsinformationen in den Fehlerkanal der Standardausgabe
jpayne@68 107 geleitet. Dies ist nur eingeschränkt hilfreich, wenn die
jpayne@68 108 Standardfehlerausgabe ein Terminal ist. Mittels \fB\-\-verbose\fP wird ein
jpayne@68 109 automatisch aktualisierter Fortschrittsanzeiger angezeigt.
jpayne@68 110 .
jpayne@68 111 .SS Speicherbedarf
jpayne@68 112 In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der
jpayne@68 113 Speicherverbrauch zwischen wenigen hundert Kilobyte und mehreren
jpayne@68 114 Gigabyte. Die Einstellungen bei der Kompression einer Datei bestimmen dabei
jpayne@68 115 den Speicherbedarf bei der Dekompression. Die Dekompression benötigt
jpayne@68 116 üblicherweise zwischen 5\ % und 20\ % des Speichers, der bei der Kompression
jpayne@68 117 der Datei erforderlich war. Beispielsweise benötigt die Dekompression einer
jpayne@68 118 Datei, die mit \fBxz \-9\fP komprimiert wurde, gegenwärtig etwa 65\ MiB
jpayne@68 119 Speicher. Es ist jedoch auch möglich, dass \fB.xz\fP\-Dateien mehrere Gigabyte
jpayne@68 120 an Speicher zur Dekompression erfordern.
jpayne@68 121 .PP
jpayne@68 122 Insbesondere für Benutzer älterer Systeme wird eventuell ein sehr großer
jpayne@68 123 Speicherbedarf ärgerlich sein. Um unangenehme Überraschungen zu vermeiden,
jpayne@68 124 verfügt \fBxz\fP über eine eingebaute Begrenzung des Speicherbedarfs, die
jpayne@68 125 allerdings in der Voreinstellung deaktiviert ist. Zwar verfügen einige
jpayne@68 126 Betriebssysteme über eingebaute Möglichkeiten zur prozessabhängigen
jpayne@68 127 Speicherbegrenzung, doch diese sind zu unflexibel (zum Beispiel kann
jpayne@68 128 \fBulimit\fP(1) beim Begrenzen des virtuellen Speichers \fBmmap\fP(2)
jpayne@68 129 beeinträchtigen).
jpayne@68 130 .PP
jpayne@68 131 Die Begrenzung des Speicherbedarfs kann mit der Befehlszeilenoption
jpayne@68 132 \fB\-\-memlimit=\fP\fIBegrenzung\fP aktiviert werden. Oft ist es jedoch bequemer,
jpayne@68 133 die Begrenzung durch Setzen der Umgebungsvariable \fBXZ_DEFAULTS\fP
jpayne@68 134 standardmäßig zu aktivieren, zum Beispiel
jpayne@68 135 \fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. Die Begrenzungen können getrennt für
jpayne@68 136 Kompression und Dekompression mittels \fB\-\-memlimit\-compress=\fP\fIBegrenzung\fP
jpayne@68 137 und \fB\-\-memlimit\-decompress=\fP\fIBegrenzung\fP festgelegt werden. Die Verwendung
jpayne@68 138 einer solchen Option außerhalb der Variable \fBXZ_DEFAULTS\fP ist kaum
jpayne@68 139 sinnvoll, da \fBxz\fP in einer einzelnen Aktion nicht gleichzeitig Kompression
jpayne@68 140 und Dekompression ausführen kann und \fB\-\-memlimit=\fP\fIBegrenzung\fP (oder \fB\-M\fP
jpayne@68 141 \fIBegrenzung\fP) lässt sich einfacher in der Befehlszeile eingeben.
jpayne@68 142 .PP
jpayne@68 143 Wenn die angegebene Speicherbegrenzung bei der Dekompression überschritten
jpayne@68 144 wird, schlägt der Vorgang fehl und \fBxz\fP zeigt eine Fehlermeldung an. Wird
jpayne@68 145 die Begrenzung bei der Kompression überschritten, dann versucht \fBxz\fP die
jpayne@68 146 Einstellungen entsprechend anzupassen, außer wenn \fB\-\-format=raw\fP oder
jpayne@68 147 \fB\-\-no\-adjust\fP angegeben ist. Auf diese Weise schlägt die Aktion nicht fehl,
jpayne@68 148 es sei denn, die Begrenzung wurde sehr niedrig angesetzt. Die Anpassung der
jpayne@68 149 Einstellungen wird schrittweise vorgenommen, allerdings entsprechen die
jpayne@68 150 Schritte nicht den Voreinstellungen der Kompressionsstufen. Das bedeutet,
jpayne@68 151 wenn beispielsweise die Begrenzung nur geringfügig unter den Anforderungen
jpayne@68 152 für \fBxz \-9\fP liegt, werden auch die Einstellungen nur wenig angepasst und
jpayne@68 153 nicht vollständig herunter zu den Werten für \fBxz \-8\fP
jpayne@68 154 .
jpayne@68 155 .SS "Verkettung und Auffüllung von .xz\-Dateien"
jpayne@68 156 Es ist möglich, \fB.xz\fP\-Dateien direkt zu verketten. Solche Dateien werden
jpayne@68 157 von \fBxz\fP genauso dekomprimiert wie eine einzelne \fB.xz\fP\-Datei.
jpayne@68 158 .PP
jpayne@68 159 Es ist weiterhin möglich, eine Auffüllung zwischen den verketteten Teilen
jpayne@68 160 oder nach dem letzten Teil einzufügen. Die Auffüllung muss aus Null\-Bytes
jpayne@68 161 bestehen und deren Größe muss ein Vielfaches von vier Byte sein. Dies kann
jpayne@68 162 zum Beispiel dann vorteilhaft sein, wenn die \fB.xz\fP\-Datei auf einem
jpayne@68 163 Datenträger gespeichert wird, dessen Dateisystem die Dateigrößen in
jpayne@68 164 512\-Byte\-Blöcken speichert.
jpayne@68 165 .PP
jpayne@68 166 Verkettung und Auffüllung sind für \fB.lzma\fP\-Dateien oder Rohdatenströme
jpayne@68 167 nicht erlaubt.
jpayne@68 168 .
jpayne@68 169 .SH OPTIONEN
jpayne@68 170 .
jpayne@68 171 .SS "Ganzzahlige Suffixe und spezielle Werte"
jpayne@68 172 An den meisten Stellen, wo ein ganzzahliges Argument akzeptiert wird, kann
jpayne@68 173 ein optionales Suffix große Ganzzahlwerte einfacher darstellen. Zwischen
jpayne@68 174 Ganzzahl und dem Suffix dürfen sich keine Leerzeichen befinden.
jpayne@68 175 .TP
jpayne@68 176 \fBKiB\fP
jpayne@68 177 multipliziert die Ganzzahl mit 1.024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP und
jpayne@68 178 \fBKB\fP werden als Synonyme für \fBKiB\fP akzeptiert.
jpayne@68 179 .TP
jpayne@68 180 \fBMiB\fP
jpayne@68 181 multipliziert die Ganzzahl mit 1.048.576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP und \fBMB\fP
jpayne@68 182 werden als Synonyme für \fBMiB\fP akzeptiert.
jpayne@68 183 .TP
jpayne@68 184 \fBGiB\fP
jpayne@68 185 multipliziert die Ganzzahl mit 1.073.741.824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP und
jpayne@68 186 \fBGB\fP werden als Synonyme für \fBGiB\fP akzeptiert.
jpayne@68 187 .PP
jpayne@68 188 Der spezielle Wert \fBmax\fP kann dazu verwendet werden, um den von der
jpayne@68 189 jeweiligen Option akzeptierten maximalen Ganzzahlwert anzugeben.
jpayne@68 190 .
jpayne@68 191 .SS Aktionsmodus
jpayne@68 192 Falls mehrere Aktionsmodi angegeben sind, wird der zuletzt angegebene
jpayne@68 193 verwendet.
jpayne@68 194 .TP
jpayne@68 195 \fB\-z\fP, \fB\-\-compress\fP
jpayne@68 196 Kompression. Dies ist der voreingestellte Aktionsmodus, sofern keiner
jpayne@68 197 angegeben ist und auch kein bestimmter Modus aus dem Befehlsnamen abgeleitet
jpayne@68 198 werden kann (der Befehl \fBunxz\fP impliziert zum Beispiel \fB\-\-decompress\fP).
jpayne@68 199 .IP ""
jpayne@68 200 .\" The DESCRIPTION section already says this but it's good to repeat it
jpayne@68 201 .\" here because the default behavior is a bit dangerous and new users
jpayne@68 202 .\" in a hurry may skip reading the DESCRIPTION section.
jpayne@68 203 After successful compression, the source file is removed unless writing to
jpayne@68 204 standard output or \fB\-\-keep\fP was specified.
jpayne@68 205 .TP
jpayne@68 206 \fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
jpayne@68 207 .\" The DESCRIPTION section already says this but it's good to repeat it
jpayne@68 208 .\" here because the default behavior is a bit dangerous and new users
jpayne@68 209 .\" in a hurry may skip reading the DESCRIPTION section.
jpayne@68 210 Decompress. After successful decompression, the source file is removed
jpayne@68 211 unless writing to standard output or \fB\-\-keep\fP was specified.
jpayne@68 212 .TP
jpayne@68 213 \fB\-t\fP, \fB\-\-test\fP
jpayne@68 214 prüft die Integrität der komprimierten \fIDateien\fP. Diese Option ist
jpayne@68 215 gleichbedeutend mit \fB\-\-decompress \-\-stdout\fP, außer dass die dekomprimierten
jpayne@68 216 Daten verworfen werden, anstatt sie in die Standardausgabe zu leiten. Es
jpayne@68 217 werden keine Dateien erstellt oder entfernt.
jpayne@68 218 .TP
jpayne@68 219 \fB\-l\fP, \fB\-\-list\fP
jpayne@68 220 gibt Informationen zu den komprimierten \fIDateien\fP aus. Es werden keine
jpayne@68 221 unkomprimierten Dateien ausgegeben und keine Dateien angelegt oder
jpayne@68 222 entfernt. Im Listenmodus kann das Programm keine komprimierten Daten aus der
jpayne@68 223 Standardeingabe oder anderen nicht durchsuchbaren Quellen lesen.
jpayne@68 224 .IP ""
jpayne@68 225 Die Liste zeigt in der Standardeinstellung grundlegende Informationen zu den
jpayne@68 226 \fIDateien\fP an, zeilenweise pro Datei. Detailliertere Informationen erhalten
jpayne@68 227 Sie mit der Option \fB\-\-verbose\fP. Wenn Sie diese Option zweimal angeben,
jpayne@68 228 werden noch ausführlichere Informationen ausgegeben. Das kann den Vorgang
jpayne@68 229 allerdings deutlich verlangsamen, da die Ermittlung der zusätzlichen
jpayne@68 230 Informationen zahlreiche Suchvorgänge erfordert. Die Breite der
jpayne@68 231 ausführlichen Ausgabe übersteigt 80 Zeichen, daher könnte die Weiterleitung
jpayne@68 232 in beispielsweise\& \fBless\ \-S\fP sinnvoll sein, falls das Terminal nicht
jpayne@68 233 breit genug ist.
jpayne@68 234 .IP ""
jpayne@68 235 Die exakte Ausgabe kann in verschiedenen \fBxz\fP\-Versionen und
jpayne@68 236 Spracheinstellungen unterschiedlich sein. Wenn eine maschinell auswertbare
jpayne@68 237 Ausgabe gewünscht ist, dann sollten Sie \fB\-\-robot \-\-list\fP verwenden.
jpayne@68 238 .
jpayne@68 239 .SS Aktionsattribute
jpayne@68 240 .TP
jpayne@68 241 \fB\-k\fP, \fB\-\-keep\fP
jpayne@68 242 verhindert das Löschen der Eingabedateien.
jpayne@68 243 .IP ""
jpayne@68 244 Seit der \fBxz\fP\-Version 5.2.6 wird die Kompression oder Dekompression auch
jpayne@68 245 dann ausgeführt, wenn die Eingabe ein symbolischer Link zu einer regulären
jpayne@68 246 Datei ist, mehr als einen harten Link hat oder das »setuid«\-, »setgid«\- oder
jpayne@68 247 »sticky«\-Bit gesetzt ist. Die genannten Bits werden nicht in die Zieldatei
jpayne@68 248 kopiert. In früheren Versionen geschah dies nur mit \fB\-\-force\fP.
jpayne@68 249 .TP
jpayne@68 250 \fB\-f\fP, \fB\-\-force\fP
jpayne@68 251 Diese Option hat verschiedene Auswirkungen:
jpayne@68 252 .RS
jpayne@68 253 .IP \(bu 3
jpayne@68 254 Wenn die Zieldatei bereits existiert, wird diese vor der Kompression oder
jpayne@68 255 Dekompression gelöscht.
jpayne@68 256 .IP \(bu 3
jpayne@68 257 Die Kompression oder Dekompression wird auch dann ausgeführt, wenn die
jpayne@68 258 Eingabe ein symbolischer Link zu einer regulären Datei ist, mehr als einen
jpayne@68 259 harten Link hat oder das »setuid«\-, »setgid«\- oder »sticky«\-Bit gesetzt
jpayne@68 260 ist. Die genannten Bits werden nicht in die Zieldatei kopiert.
jpayne@68 261 .IP \(bu 3
jpayne@68 262 Wenn es zusammen mit \fB\-\-decompress\fP und \fB\-\-stdout\fP verwendet wird und
jpayne@68 263 \fBxz\fP den Typ der Quelldatei nicht ermitteln kann, wird die Quelldatei
jpayne@68 264 unverändert in die Standardausgabe kopiert. Dadurch kann \fBxzcat\fP \fB\-\-force\fP
jpayne@68 265 für Dateien, die nicht mit \fBxz\fP komprimiert wurden, wie \fBcat\fP(1) verwendet
jpayne@68 266 werden. Zukünftig könnte \fBxz\fP neue Dateikompressionsformate unterstützen,
jpayne@68 267 wodurch \fBxz\fP mehr Dateitypen dekomprimieren kann, anstatt sie unverändert
jpayne@68 268 in die Standardausgabe zu kopieren. Mit der Option \fB\-\-format=\fP\fIFormat\fP
jpayne@68 269 können Sie \fBxz\fP anweisen, nur ein einzelnes Dateiformat zu dekomprimieren.
jpayne@68 270 .RE
jpayne@68 271 .TP
jpayne@68 272 \fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
jpayne@68 273 schreibt die komprimierten oder dekomprimierten Daten in die Standardausgabe
jpayne@68 274 anstatt in eine Datei. Dies impliziert \fB\-\-keep\fP.
jpayne@68 275 .TP
jpayne@68 276 \fB\-\-single\-stream\fP
jpayne@68 277 dekomprimiert nur den ersten \fB.xz\fP\-Datenstrom und ignoriert stillschweigend
jpayne@68 278 weitere Eingabedaten, die möglicherweise dem Datenstrom
jpayne@68 279 folgen. Normalerweise führt solcher anhängender Datenmüll dazu, dass \fBxz\fP
jpayne@68 280 eine Fehlermeldung ausgibt.
jpayne@68 281 .IP ""
jpayne@68 282 \fBxz\fP dekomprimiert niemals mehr als einen Datenstrom aus \fB.lzma\fP\-Dateien
jpayne@68 283 oder Rohdatenströmen, aber dennoch wird durch diese Option möglicherweise
jpayne@68 284 vorhandener Datenmüll nach der \fB.lzma\fP\-Datei oder dem Rohdatenstrom
jpayne@68 285 ignoriert.
jpayne@68 286 .IP ""
jpayne@68 287 Diese Option ist wirkungslos, wenn der Aktionsmodus nicht \fB\-\-decompress\fP
jpayne@68 288 oder \fB\-\-test\fP ist.
jpayne@68 289 .TP
jpayne@68 290 \fB\-\-no\-sparse\fP
jpayne@68 291 verhindert die Erzeugung von Sparse\-Dateien. In der Voreinstellung versucht
jpayne@68 292 \fBxz\fP, bei der Dekompression in eine reguläre Datei eine Sparse\-Datei zu
jpayne@68 293 erzeugen, wenn die dekomprimierten Daten lange Abfolgen von binären Nullen
jpayne@68 294 enthalten. Dies funktioniert auch beim Schreiben in die Standardausgabe,
jpayne@68 295 sofern diese in eine reguläre Datei weitergeleitet wird und bestimmte
jpayne@68 296 Zusatzbedingungen erfüllt sind, die die Aktion absichern. Die Erzeugung von
jpayne@68 297 Sparse\-Dateien kann Plattenplatz sparen und beschleunigt die Dekompression
jpayne@68 298 durch Verringerung der Ein\-/Ausgaben der Platte.
jpayne@68 299 .TP
jpayne@68 300 \fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
jpayne@68 301 verwendet \fI.suf\fP bei der Dekompression anstelle von \fB.xz\fP oder \fB.lzma\fP
jpayne@68 302 als Suffix für die Zieldatei. Falls nicht in die Standardausgabe geschrieben
jpayne@68 303 wird und die Quelldatei bereits das Suffix \fI.suf\fP hat, wird eine Warnung
jpayne@68 304 angezeigt und die Datei übersprungen.
jpayne@68 305 .IP ""
jpayne@68 306 berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen
jpayne@68 307 \&\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP oder \fB.lz\fP auch jene mit dem Suffix
jpayne@68 308 \&\fI.suf\fP. Falls die Quelldatei das Suffix \fI.suf\fP hat, wird dieses entfernt
jpayne@68 309 und so der Name der Zieldatei abgeleitet.
jpayne@68 310 .IP ""
jpayne@68 311 Beim Komprimieren oder Dekomprimieren von Rohdatenströmen mit
jpayne@68 312 \fB\-\-format=raw\fP muss das Suffix stets angegeben werden, außer wenn die
jpayne@68 313 Ausgabe in die Standardausgabe erfolgt. Der Grund dafür ist, dass es kein
jpayne@68 314 vorgegebenes Suffix für Rohdatenströme gibt.
jpayne@68 315 .TP
jpayne@68 316 \fB\-\-files\fP[\fB=\fP\fIDatei\fP]
jpayne@68 317 liest die zu verarbeitenden Dateinamen aus \fIDatei\fP. Falls keine \fIDatei\fP
jpayne@68 318 angegeben ist, werden die Dateinamen aus der Standardeingabe
jpayne@68 319 gelesen. Dateinamen müssen mit einem Zeilenumbruch beendet werden. Ein
jpayne@68 320 Bindestrich (\fB\-\fP) wird als regulärer Dateiname angesehen und nicht als
jpayne@68 321 Standardeingabe interpretiert. Falls Dateinamen außerdem als
jpayne@68 322 Befehlszeilenargumente angegeben sind, werden diese vor den Dateinamen aus
jpayne@68 323 der \fIDatei\fP verarbeitet.
jpayne@68 324 .TP
jpayne@68 325 \fB\-\-files0\fP[\fB=\fP\fIDatei\fP]
jpayne@68 326 Dies ist gleichbedeutend mit \fB\-\-files\fP[\fB=\fP\fIDatei\fP], außer dass jeder
jpayne@68 327 Dateiname mit einem Null\-Zeichen abgeschlossen werden muss.
jpayne@68 328 .
jpayne@68 329 .SS "Grundlegende Dateiformat\- und Kompressionsoptionen"
jpayne@68 330 .TP
jpayne@68 331 \fB\-F\fP \fIFormat\fP, \fB\-\-format=\fP\fIFormat\fP
jpayne@68 332 gibt das \fIFormat\fP der zu komprimierenden oder dekomprimierenden Datei an:
jpayne@68 333 .RS
jpayne@68 334 .TP
jpayne@68 335 \fBauto\fP
jpayne@68 336 Dies ist die Voreinstellung. Bei der Kompression ist \fBauto\fP gleichbedeutend
jpayne@68 337 mit \fBxz\fP. Bei der Dekompression wird das Format der Eingabedatei
jpayne@68 338 automatisch erkannt. Beachten Sie, dass Rohdatenströme, wie sie mit
jpayne@68 339 \fB\-\-format=raw\fP erzeugt werden, nicht automatisch erkannt werden können.
jpayne@68 340 .TP
jpayne@68 341 \fBxz\fP
jpayne@68 342 Die Kompression erfolgt in das \fB.xz\fP\-Dateiformat oder akzeptiert nur
jpayne@68 343 \&\fB.xz\fP\-Dateien bei der Dekompression.
jpayne@68 344 .TP
jpayne@68 345 \fBlzma\fP, \fBalone\fP
jpayne@68 346 Die Kompression erfolgt in das veraltete \fB.lzma\fP\-Dateiformat oder
jpayne@68 347 akzeptiert nur \fB.lzma\fP\-Dateien bei der Dekompression. Der alternative Name
jpayne@68 348 \fBalone\fP dient der Abwärtskompatibilität zu den LZMA\-Dienstprogrammen.
jpayne@68 349 .TP
jpayne@68 350 \fBlzip\fP
jpayne@68 351 Akzeptiert nur \fB.lz\fP\-Dateien bei der Dekompression. Kompression wird nicht
jpayne@68 352 unterstützt.
jpayne@68 353 .IP ""
jpayne@68 354 Das \fB.lz\fP\-Format wird in Version 0 und der unerweiterten Version 1
jpayne@68 355 unterstützt. Dateien der Version 0 wurden von \fBlzip\fP 1.3 und älter
jpayne@68 356 erstellt. Solche Dateien sind nicht sehr weit verbreitet, können aber in
jpayne@68 357 Dateiarchiven gefunden werden, da einige Quellpakete in diesem Format
jpayne@68 358 veröffentlicht wurden. Es ist auch möglich, dass Benutzer alte persönliche
jpayne@68 359 Dateien in diesem Format haben. Die Dekompressionsunterstützung für das
jpayne@68 360 Format der Version 0 wurde mit der Version 1.18 aus \fBlzip\fP entfernt.
jpayne@68 361 .IP ""
jpayne@68 362 \fBlzip\fP\-Versionen ab 1.4 erstellen Dateien im Format der Version 0. Die
jpayne@68 363 Erweiterung »Sync Flush Marker« zur Formatversion 1 wurde in \fBlzip\fP 1.6
jpayne@68 364 hinzugefügt. Diese Erweiterung wird sehr selten verwendet und wird von \fBxz\fP
jpayne@68 365 nicht unterstützt (die Eingabe wird als beschädigt erkannt).
jpayne@68 366 .TP
jpayne@68 367 \fBraw\fP
jpayne@68 368 Komprimiert oder dekomprimiert einen Rohdatenstrom (ohne Header). Diese
jpayne@68 369 Option ist nur für fortgeschrittene Benutzer bestimmt. Zum Dekodieren von
jpayne@68 370 Rohdatenströmen müssen Sie die Option \fB\-\-format=raw\fP verwenden und die
jpayne@68 371 Filterkette ausdrücklich angeben, die normalerweise in den (hier fehlenden)
jpayne@68 372 Container\-Headern gespeichert worden wäre.
jpayne@68 373 .RE
jpayne@68 374 .TP
jpayne@68 375 \fB\-C\fP \fIPrüfung\fP, \fB\-\-check=\fP\fIPrüfung\fP
jpayne@68 376 gibt den Typ der Integritätsprüfung an. Die Prüfsumme wird aus den
jpayne@68 377 unkomprimierten Daten berechnet und in der \fB.xz\fP\-Datei gespeichert. Diese
jpayne@68 378 Option wird nur bei der Kompression in das \fB.xz\fP\-Format angewendet, da das
jpayne@68 379 \&\fB.lzma\fP\-Format keine Integritätsprüfungen unterstützt. Die eigentliche
jpayne@68 380 Integritätsprüfung erfolgt (falls möglich), wenn die \fB.xz\fP\-Datei
jpayne@68 381 dekomprimiert wird.
jpayne@68 382 .IP ""
jpayne@68 383 Folgende Typen von \fIPrüfungen\fP werden unterstützt:
jpayne@68 384 .RS
jpayne@68 385 .TP
jpayne@68 386 \fBnone\fP
jpayne@68 387 führt keine Integritätsprüfung aus. Dies ist eine eher schlechte
jpayne@68 388 Idee. Dennoch kann es nützlich sein, wenn die Integrität der Daten auf
jpayne@68 389 andere Weise sichergestellt werden kann.
jpayne@68 390 .TP
jpayne@68 391 \fBcrc32\fP
jpayne@68 392 berechnet die CRC32\-Prüfsumme anhand des Polynoms aus IEEE\-802.3 (Ethernet).
jpayne@68 393 .TP
jpayne@68 394 \fBcrc64\fP
jpayne@68 395 berechnet die CRC64\-Prüfsumme anhand des Polynoms aus ECMA\-182. Dies ist die
jpayne@68 396 Voreinstellung, da beschädigte Dateien etwas besser als mit CRC32 erkannt
jpayne@68 397 werden und die Geschwindigkeitsdifferenz unerheblich ist.
jpayne@68 398 .TP
jpayne@68 399 \fBsha256\fP
jpayne@68 400 berechnet die SHA\-256\-Prüfsumme. Dies ist etwas langsamer als CRC32 und
jpayne@68 401 CRC64.
jpayne@68 402 .RE
jpayne@68 403 .IP ""
jpayne@68 404 Die Integrität der \fB.xz\fP\-Header wird immer mit CRC32 geprüft. Es ist nicht
jpayne@68 405 möglich, dies zu ändern oder zu deaktivieren.
jpayne@68 406 .TP
jpayne@68 407 \fB\-\-ignore\-check\fP
jpayne@68 408 verifiziert die Integritätsprüfsumme der komprimierten Daten bei der
jpayne@68 409 Dekompression nicht. Die CRC32\-Werte in den \fB.xz\fP\-Headern werden weiterhin
jpayne@68 410 normal verifiziert.
jpayne@68 411 .IP ""
jpayne@68 412 \fBVerwenden Sie diese Option nicht, außer Sie wissen, was Sie tun.\fP Mögliche
jpayne@68 413 Gründe, diese Option zu verwenden:
jpayne@68 414 .RS
jpayne@68 415 .IP \(bu 3
jpayne@68 416 Versuchen, Daten aus einer beschädigten .xz\-Datei wiederherzustellen.
jpayne@68 417 .IP \(bu 3
jpayne@68 418 Erhöhung der Geschwindigkeit bei der Dekompression. Dies macht sich meist
jpayne@68 419 mit SHA\-256 bemerkbar, oder mit Dateien, die extrem stark komprimiert
jpayne@68 420 sind. Wir empfehlen, diese Option nicht für diesen Zweck zu verwenden, es
jpayne@68 421 sei denn, die Integrität der Datei wird extern auf andere Weise überprüft.
jpayne@68 422 .RE
jpayne@68 423 .TP
jpayne@68 424 \fB\-0\fP … \fB\-9\fP
jpayne@68 425 wählt eine der voreingestellten Kompressionsstufen, standardmäßig
jpayne@68 426 \fB\-6\fP. Wenn mehrere Voreinstellungsstufen angegeben sind, ist nur die
jpayne@68 427 zuletzt angegebene wirksam. Falls bereits eine benutzerdefinierte
jpayne@68 428 Filterkette angegeben wurde, wird diese durch die Festlegung der
jpayne@68 429 Voreinstellung geleert.
jpayne@68 430 .IP ""
jpayne@68 431 Die Unterschiede zwischen den Voreinstellungsstufen sind deutlicher als bei
jpayne@68 432 \fBgzip\fP(1) und \fBbzip2\fP(1). Die gewählten Kompressionseinstellungen
jpayne@68 433 bestimmen den Speicherbedarf bei der Dekompression, daher ist es auf älteren
jpayne@68 434 Systemen mit wenig Speicher bei einer zu hoch gewählten Voreinstellung
jpayne@68 435 schwer, eine Datei zu dekomprimieren. Insbesondere \fBist es keine gute Idee, blindlings \-9 für alles\fP zu verwenden, wie dies häufig mit \fBgzip\fP(1) und
jpayne@68 436 \fBbzip2\fP(1) gehandhabt wird.
jpayne@68 437 .RS
jpayne@68 438 .TP
jpayne@68 439 \fB\-0\fP … \fB\-3\fP
jpayne@68 440 Diese Voreinstellungen sind recht schnell. \fB\-0\fP ist manchmal schneller als
jpayne@68 441 \fBgzip \-9\fP, wobei aber die Kompression wesentlich besser ist. Die
jpayne@68 442 schnelleren Voreinstellungen sind im Hinblick auf die Geschwindigkeit mit
jpayne@68 443 \fBbzip2\fP(1) vergleichbar , mit einem ähnlichen oder besseren
jpayne@68 444 Kompressionsverhältnis, wobei das Ergebnis aber stark vom Typ der zu
jpayne@68 445 komprimierenden Daten abhängig ist.
jpayne@68 446 .TP
jpayne@68 447 \fB\-4\fP … \fB\-6\fP
jpayne@68 448 Gute bis sehr gute Kompression, wobei der Speicherbedarf für die
jpayne@68 449 Dekompression selbst auf alten Systemen akzeptabel ist. \fB\-6\fP ist die
jpayne@68 450 Voreinstellung, welche üblicherweise eine gute Wahl für die Verteilung von
jpayne@68 451 Dateien ist, die selbst noch auf Systemen mit nur 16\ MiB Arbeitsspeicher
jpayne@68 452 dekomprimiert werden müssen (\fB\-5e\fP oder \fB\-6e\fP sind ebenfalls eine
jpayne@68 453 Überlegung wert. Siehe \fB\-\-extreme\fP).
jpayne@68 454 .TP
jpayne@68 455 \fB\-7 … \-9\fP
jpayne@68 456 Ähnlich wie \fB\-6\fP, aber mit einem höheren Speicherbedarf für die Kompression
jpayne@68 457 und Dekompression. Sie sind nur nützlich, wenn Dateien komprimiert werden
jpayne@68 458 sollen, die größer als 8\ MiB, 16\ MiB beziehungsweise 32\ MiB sind.
jpayne@68 459 .RE
jpayne@68 460 .IP ""
jpayne@68 461 Auf der gleichen Hardware ist die Dekompressionsgeschwindigkeit ein nahezu
jpayne@68 462 konstanter Wert in Bytes komprimierter Daten pro Sekunde. Anders
jpayne@68 463 ausgedrückt: Je besser die Kompression, umso schneller wird üblicherweise
jpayne@68 464 die Dekompression sein. Das bedeutet auch, dass die Menge der pro Sekunde
jpayne@68 465 ausgegebenen unkomprimierten Daten stark variieren kann.
jpayne@68 466 .IP ""
jpayne@68 467 Die folgende Tabelle fasst die Eigenschaften der Voreinstellungen zusammen:
jpayne@68 468 .RS
jpayne@68 469 .RS
jpayne@68 470 .PP
jpayne@68 471 .TS
jpayne@68 472 tab(;);
jpayne@68 473 c c c c c
jpayne@68 474 n n n n n.
jpayne@68 475 Voreinst.;Wörtb.Gr;KomprCPU;KompSpeich;DekompSpeich
jpayne@68 476 \-0;256 KiB;0;3 MiB;1 MiB
jpayne@68 477 \-1;1 MiB;1;9 MiB;2 MiB
jpayne@68 478 \-2;2 MiB;2;17 MiB;3 MiB
jpayne@68 479 \-3;4 MiB;3;32 MiB;5 MiB
jpayne@68 480 \-4;4 MiB;4;48 MiB;5 MiB
jpayne@68 481 \-5;8 MiB;5;94 MiB;9 MiB
jpayne@68 482 \-6;8 MiB;6;94 MiB;9 MiB
jpayne@68 483 \-7;16 MiB;6;186 MiB;17 MiB
jpayne@68 484 \-8;32 MiB;6;370 MiB;33 MiB
jpayne@68 485 \-9;64 MiB;6;674 MiB;65 MiB
jpayne@68 486 .TE
jpayne@68 487 .RE
jpayne@68 488 .RE
jpayne@68 489 .IP ""
jpayne@68 490 Spaltenbeschreibungen:
jpayne@68 491 .RS
jpayne@68 492 .IP \(bu 3
jpayne@68 493 Wörtb.Größe ist die Größe des LZMA2\-Wörterbuchs. Es ist
jpayne@68 494 Speicherverschwendung, ein Wörterbuch zu verwenden, das größer als die
jpayne@68 495 unkomprimierte Datei ist. Daher ist es besser, die Voreinstellungen \fB\-7\fP …
jpayne@68 496 \fB\-9\fP zu vermeiden, falls es keinen wirklichen Bedarf dafür gibt. Mit \fB\-6\fP
jpayne@68 497 und weniger wird üblicherweise so wenig Speicher verschwendet, dass dies
jpayne@68 498 nicht ins Gewicht fällt.
jpayne@68 499 .IP \(bu 3
jpayne@68 500 KomprCPU ist eine vereinfachte Repräsentation der LZMA2\-Einstellungen,
jpayne@68 501 welche die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße
jpayne@68 502 wirkt sich ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die
jpayne@68 503 Stufen \fB\-6\fP bis \fB\-9\fP gleich ist, tendieren höhere Stufen dazu, etwas
jpayne@68 504 langsamer zu sein. Um eine noch langsamere, aber möglicherweise bessere
jpayne@68 505 Kompression zu erhalten, siehe \fB\-\-extreme\fP.
jpayne@68 506 .IP \(bu 3
jpayne@68 507 KompSpeich enthält den Speicherbedarf des Kompressors im
jpayne@68 508 Einzel\-Thread\-Modus. Dieser kann zwischen den \fBxz\fP\-Versionen leicht
jpayne@68 509 variieren.
jpayne@68 510 .IP \(bu 3
jpayne@68 511 DekompSpeich enthält den Speicherbedarf für die Dekompression. Das bedeutet,
jpayne@68 512 dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression
jpayne@68 513 bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig
jpayne@68 514 größer als die Größe des LZMA2\-Wörterbuchs, aber die Werte in der Tabelle
jpayne@68 515 wurden auf ganze MiB aufgerundet.
jpayne@68 516 .RE
jpayne@68 517 .IP ""
jpayne@68 518 Der Speicherbedarf einiger der zukünftigen Multithread\-Modi kann dramatisch
jpayne@68 519 höher sein als im Einzel\-Thread\-Modus. Mit dem Standardwert von
jpayne@68 520 \fB\-\-block\-size\fP benötigt jeder Thread 3*3*Wörtb.Gr plus KompSpeich oder
jpayne@68 521 DekompSpeich. Beispielsweise benötigen vier Threads mit der Voreinstellung
jpayne@68 522 \fB\-6\fP etwa 660 bis 670 MiB Speicher.
jpayne@68 523 .TP
jpayne@68 524 \fB\-e\fP, \fB\-\-extreme\fP
jpayne@68 525 verwendet eine langsamere Variante der gewählten
jpayne@68 526 Kompressions\-Voreinstellungsstufe (\fB\-0\fP … \fB\-9\fP), um hoffentlich ein etwas
jpayne@68 527 besseres Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen
jpayne@68 528 auch schlechter werden kann. Der Speicherverbrauch bei der Dekompression
jpayne@68 529 wird dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression
jpayne@68 530 steigt in den Voreinstellungsstufen \fB\-0\fP bis \fB\-3\fP geringfügig an.
jpayne@68 531 .IP ""
jpayne@68 532 Da es zwei Voreinstellungen mit den Wörterbuchgrößen 4\ MiB und 8\ MiB gibt,
jpayne@68 533 verwenden die Voreinstellungsstufen \fB\-3e\fP und \fB\-5e\fP etwas schnellere
jpayne@68 534 Einstellungen (niedrigere KompCPU) als \fB\-4e\fP beziehungsweise \fB\-6e\fP. Auf
jpayne@68 535 diese Weise sind zwei Voreinstellungen nie identisch.
jpayne@68 536 .RS
jpayne@68 537 .RS
jpayne@68 538 .PP
jpayne@68 539 .TS
jpayne@68 540 tab(;);
jpayne@68 541 c c c c c
jpayne@68 542 n n n n n.
jpayne@68 543 Voreinst.;Wörtb.Gr;KomprCPU;KompSpeich;DekompSpeich
jpayne@68 544 \-0e;256 KiB;8;4 MiB;1 MiB
jpayne@68 545 \-1e;1 MiB;8;13 MiB;2 MiB
jpayne@68 546 \-2e;2 MiB;8;25 MiB;3 MiB
jpayne@68 547 \-3e;4 MiB;7;48 MiB;5 MiB
jpayne@68 548 \-4e;4 MiB;8;48 MiB;5 MiB
jpayne@68 549 \-5e;8 MiB;7;94 MiB;9 MiB
jpayne@68 550 \-6e;8 MiB;8;94 MiB;9 MiB
jpayne@68 551 \-7e;16 MiB;8;186 MiB;17 MiB
jpayne@68 552 \-8e;32 MiB;8;370 MiB;33 MiB
jpayne@68 553 \-9e;64 MiB;8;674 MiB;65 MiB
jpayne@68 554 .TE
jpayne@68 555 .RE
jpayne@68 556 .RE
jpayne@68 557 .IP ""
jpayne@68 558 Zum Beispiel gibt es insgesamt vier Voreinstellungen, die ein 8\ MiB großes
jpayne@68 559 Wörterbuch verwenden, deren Reihenfolge von der schnellsten zur langsamsten
jpayne@68 560 \fB\-5\fP, \fB\-6\fP, \fB\-5e\fP und \fB\-6e\fP ist.
jpayne@68 561 .TP
jpayne@68 562 \fB\-\-fast\fP
jpayne@68 563 .PD 0
jpayne@68 564 .TP
jpayne@68 565 \fB\-\-best\fP
jpayne@68 566 .PD
jpayne@68 567 sind etwas irreführende Aliase für \fB\-0\fP beziehungsweise \fB\-9\fP. Sie werden
jpayne@68 568 nur zwecks Abwärtskompatibilität zu den LZMA\-Dienstprogrammen
jpayne@68 569 bereitgestellt. Sie sollten diese Optionen besser nicht verwenden.
jpayne@68 570 .TP
jpayne@68 571 \fB\-\-block\-size=\fP\fIGröße\fP
jpayne@68 572 teilt beim Komprimieren in das \fB.xz\fP\-Format die Eingabedaten in Blöcke der
jpayne@68 573 angegebenen \fIGröße\fP in Byte. Die Blöcke werden unabhängig voneinander
jpayne@68 574 komprimiert, was dem Multi\-Threading entgegen kommt und Zufallszugriffe bei
jpayne@68 575 der Dekompression begrenzt. Diese Option wird typischerweise eingesetzt, um
jpayne@68 576 die vorgegebene Blockgröße im Multi\-Thread\-Modus außer Kraft zu setzen, aber
jpayne@68 577 sie kann auch im Einzel\-Thread\-Modus angewendet werden.
jpayne@68 578 .IP ""
jpayne@68 579 Im Multi\-Thread\-Modus wird etwa die dreifache \fIGröße\fP in jedem Thread zur
jpayne@68 580 Pufferung der Ein\- und Ausgabe belegt. Die vorgegebene \fIGröße\fP ist das
jpayne@68 581 Dreifache der Größe des LZMA2\-Wörterbuchs oder 1 MiB, je nachdem, was mehr
jpayne@68 582 ist. Typischerweise ist das Zwei\- bis Vierfache der Größe des
jpayne@68 583 LZMA2\-Wörterbuchs oder wenigstens 1 MB ein guter Wert. Eine \fIGröße\fP, die
jpayne@68 584 geringer ist als die des LZMA2\-Wörterbuchs, ist Speicherverschwendung, weil
jpayne@68 585 dann der LZMA2\-Wörterbuchpuffer niemals vollständig genutzt werden würde. Im
jpayne@68 586 Multi\-Thread\-Modus wird die Größe der Blöcke wird in den Block\-Headern
jpayne@68 587 gespeichert. Die Größeninformation wird für eine Multi\-Thread\-Dekompression
jpayne@68 588 genutzt.
jpayne@68 589 .IP ""
jpayne@68 590 Im Einzel\-Thread\-Modus werden die Blöcke standardmäßig nicht geteilt. Das
jpayne@68 591 Setzen dieser Option wirkt sich nicht auf den Speicherbedarf aus. In den
jpayne@68 592 Block\-Headern werden keine Größeninformationen gespeichert, daher werden im
jpayne@68 593 Einzel\-Thread\-Modus erzeugte Dateien nicht zu den im Multi\-Thread\-Modus
jpayne@68 594 erzeugten Dateien identisch sein. Das Fehlen der Größeninformation bedingt
jpayne@68 595 auch, dass \fBxz\fP nicht in der Lage sein wird, die Dateien im
jpayne@68 596 Multi\-Thread\-Modus zu dekomprimieren.
jpayne@68 597 .TP
jpayne@68 598 \fB\-\-block\-list=\fP\fIBlöcke\fP
jpayne@68 599 beginnt bei der Kompression in das \fB.xz\fP\-Format nach den angegebenen
jpayne@68 600 Intervallen unkomprimierter Daten einen neuen Block, optional mit einer
jpayne@68 601 benutzerdefinierten Filterkette.
jpayne@68 602 .IP ""
jpayne@68 603 Die \fIBlöcke\fP werden in einer durch Kommata getrennten Liste
jpayne@68 604 angegeben. Jeder Block besteht aus einer optionalen Filterkettennummer
jpayne@68 605 zwischen 0 und 9, gefolgt von einem Doppelpunkt (\fB:\fP) und der Größe der
jpayne@68 606 unkomprimierten Daten (diese Angabe ist erforderlich). Überspringen eines
jpayne@68 607 Blocks (zwei oder mehr aufeinander folgende Kommata) ist ein Kürzel dafür,
jpayne@68 608 die Größe und die Filter des vorherigen Blocks zu verwenden.
jpayne@68 609 .IP ""
jpayne@68 610 Falls die Eingabedatei größer ist als die Summe der \fIBlöcke\fP, dann wird der
jpayne@68 611 letzte in \fIVBlöcke\fP angegebene Wert bis zum Ende der Datei wiederholt. Mit
jpayne@68 612 dem speziellen Wert \fB0\fP können Sie angeben, dass der Rest der Datei als
jpayne@68 613 einzelner Block kodiert werden soll.
jpayne@68 614 .IP ""
jpayne@68 615 Eine alternative Filterkette für jeden Block kann in Kombination mit den
jpayne@68 616 Optionen \fB\-\-filters1=\fP\fIFilter\fP \&…\& \fB\-\-filters9=\fP\fIFilter\fP angegeben
jpayne@68 617 werden. Diese Optionen definieren Filterketten mit einem Bezeichner zwischen
jpayne@68 618 1 und 9. Die Filterkette 0 bezeichnet hierbei die voreingestellte
jpayne@68 619 Filterkette, was dem Nichtangeben einer Filterkette gleichkommt. Der
jpayne@68 620 Filterkettenbezeichner kann vor der unkomprimierten Größe verwendet werden,
jpayne@68 621 gefolgt von einem Doppelpunkt (\fB:\fP). Falls Sie beispielsweise
jpayne@68 622 \fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP angeben, werden die Blöcke
jpayne@68 623 folgendermaßen erstellt:
jpayne@68 624 .RS
jpayne@68 625 .IP \(bu 3
jpayne@68 626 Die durch \fB\-\-filters1\fP angegebene Filterkette und 2 MiB Eingabe
jpayne@68 627 .IP \(bu 3
jpayne@68 628 Die durch \fB\-\-filters3\fP angegebene Filterkette und 2 MiB Eingabe
jpayne@68 629 .IP \(bu 3
jpayne@68 630 Die durch \fB\-\-filters2\fP angegebene Filterkette und 4 MiB Eingabe
jpayne@68 631 .IP \(bu 3
jpayne@68 632 Die durch \fB\-\-filters2\fP angegebene Filterkette und 4 MiB Eingabe
jpayne@68 633 .IP \(bu 3
jpayne@68 634 Die vorgegebene Filterkette und 2 MiB Eingabe
jpayne@68 635 .IP \(bu 3
jpayne@68 636 Die vorgegebene Filterkette und 4 MiB Eingabe für jeden Block bis zum Ende
jpayne@68 637 der Eingabe.
jpayne@68 638 .RE
jpayne@68 639 .IP ""
jpayne@68 640 Falls Sie eine Größe angeben, welche die Blockgröße des Encoders übersteigen
jpayne@68 641 (entweder den Vorgabewert im Thread\-Modus oder den mit
jpayne@68 642 \fB\-\-block\-size=\fP\fIGröße\fP angegebenen Wert), wird der Encoder zusätzliche
jpayne@68 643 Blöcke erzeugen, wobei die in den \fIBlöcke\fP angegebenen Grenzen eingehalten
jpayne@68 644 werden. Wenn Sie zum Beispiel \fB\-\-block\-size=10MiB\fP
jpayne@68 645 \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP angeben und die Eingabedatei 80
jpayne@68 646 MiB groß ist, erhalten Sie 11 Blöcke: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 und
jpayne@68 647 1 MiB.
jpayne@68 648 .IP ""
jpayne@68 649 Im Multi\-Thread\-Modus werden die Blockgrößen in den Block\-Headern
jpayne@68 650 gespeichert. Dies geschieht im Einzel\-Thread\-Modus nicht, daher wird die
jpayne@68 651 kodierte Ausgabe zu der im Multi\-Thread\-Modus nicht identisch sein.
jpayne@68 652 .TP
jpayne@68 653 \fB\-\-flush\-timeout=\fP\fIZeit\fP
jpayne@68 654 löscht bei der Kompression die ausstehenden Daten aus dem Encoder und macht
jpayne@68 655 sie im Ausgabedatenstrom verfügbar, wenn mehr als die angegebene \fIZeit\fP in
jpayne@68 656 Millisekunden (als positive Ganzzahl) seit dem vorherigen Löschen vergangen
jpayne@68 657 ist und das Lesen weiterer Eingaben blockieren würde. Dies kann nützlich
jpayne@68 658 sein, wenn \fBxz\fP zum Komprimieren von über das Netzwerk eingehenden Daten
jpayne@68 659 verwendet wird. Kleine \fIZeit\fP\-Werte machen die Daten unmittelbar nach dem
jpayne@68 660 Empfang nach einer kurzen Verzögerung verfügbar, während große \fIZeit\fP\-Werte
jpayne@68 661 ein besseres Kompressionsverhältnis bewirken.
jpayne@68 662 .IP ""
jpayne@68 663 Dieses Funktionsmerkmal ist standardmäßig deaktiviert. Wenn diese Option
jpayne@68 664 mehrfach angegeben wird, ist die zuletzt angegebene wirksam. Für die Angabe
jpayne@68 665 der \fIZeit\fP kann der spezielle Wert \fB0\fP verwendet werden, um dieses
jpayne@68 666 Funktionsmerkmal explizit zu deaktivieren.
jpayne@68 667 .IP ""
jpayne@68 668 Dieses Funktionsmerkmal ist außerhalb von POSIX\-Systemen nicht verfügbar.
jpayne@68 669 .IP ""
jpayne@68 670 .\" FIXME
jpayne@68 671 \fBDieses Funktionsmerkmal ist noch experimentell.\fP Gegenwärtig ist \fBxz\fP
jpayne@68 672 aufgrund der Art und Weise, wie \fBxz\fP puffert, für Dekompression in Echtzeit
jpayne@68 673 ungeeignet.
jpayne@68 674 .TP
jpayne@68 675 \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
jpayne@68 676 legt eine Grenze für die Speichernutzung bei der Kompression fest. Wenn
jpayne@68 677 diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam.
jpayne@68 678 .IP ""
jpayne@68 679 Falls die Kompressionseinstellungen die \fIGrenze\fP überschreiten, versucht
jpayne@68 680 \fBxz\fP, die Einstellungen nach unten anzupassen, so dass die Grenze nicht
jpayne@68 681 mehr überschritten wird und zeigt einen Hinweis an, dass eine automatische
jpayne@68 682 Anpassung vorgenommen wurde. Die Anpassungen werden in folgender Reihenfolge
jpayne@68 683 angewendet: Reduzierung der Anzahl der Threads, Wechsel in den
jpayne@68 684 Einzelthread\-Modus, falls sogar ein einziger Thread im Multithread\-Modus die
jpayne@68 685 \fIGrenze\fP überschreitet, und schlussendlich die Reduzierung der Größe des
jpayne@68 686 LZMA2\-Wörterbuchs.
jpayne@68 687 .IP ""
jpayne@68 688 Beim Komprimieren mit \fB\-\-format=raw\fP oder falls \fB\-\-no\-adjust\fP angegeben
jpayne@68 689 wurde, wird nur die Anzahl der Threads reduziert, da nur so die komprimierte
jpayne@68 690 Ausgabe nicht beeinflusst wird.
jpayne@68 691 .IP ""
jpayne@68 692 Falls die \fIGrenze\fP nicht anhand der vorstehend beschriebenen Anpassungen
jpayne@68 693 gesetzt werden kann, wird ein Fehler angezeigt und \fBxz\fP wird mit dem
jpayne@68 694 Exit\-Status 1 beendet.
jpayne@68 695 .IP ""
jpayne@68 696 Die \fIGrenze\fP kann auf verschiedene Arten angegeben werden:
jpayne@68 697 .RS
jpayne@68 698 .IP \(bu 3
jpayne@68 699 Die \fIGrenze\fP kann ein absoluter Wert in Byte sein. Ein Suffix wie \fBMiB\fP
jpayne@68 700 kann dabei hilfreich sein. Beispiel: \fB\-\-memlimit\-compress=80MiB\fP.
jpayne@68 701 .IP \(bu 3
jpayne@68 702 Die \fIGrenze\fP kann als Prozentsatz des physischen Gesamtspeichers (RAM)
jpayne@68 703 angegeben werden. Dies ist insbesondere nützlich, wenn in einem
jpayne@68 704 Shell\-Initialisierungsskript, das mehrere unterschiedliche Rechner gemeinsam
jpayne@68 705 verwenden, die Umgebungsvariable \fBXZ_DEFAULTS\fP gesetzt ist. Auf diese Weise
jpayne@68 706 ist die Grenze auf Systemen mit mehr Speicher höher. Beispiel:
jpayne@68 707 \fB\-\-memlimit\-compress=70%\fP
jpayne@68 708 .IP \(bu 3
jpayne@68 709 Mit \fB0\fP kann die \fIGrenze\fP auf den Standardwert zurückgesetzt werden. Dies
jpayne@68 710 ist gegenwärtig gleichbedeutend mit dem Setzen der \fIGrenze\fP auf \fBmax\fP
jpayne@68 711 (keine Speicherbegrenzung).
jpayne@68 712 .RE
jpayne@68 713 .IP ""
jpayne@68 714 Für die 32\-Bit\-Version von \fBxz\fP gibt es einen Spezialfall: Falls die Grenze
jpayne@68 715 über \fB4020\ MiB\fP liegt, wird die \fIGrenze\fP auf \fB4020\ MiB\fP gesetzt. Auf
jpayne@68 716 MIPS32 wird stattdessen \fB2000\ MB\fP verwendet (die Werte \fB0\fP und \fBmax\fP
jpayne@68 717 werden hiervon nicht beeinflusst; für die Dekompression gibt es keine
jpayne@68 718 vergleichbare Funktion). Dies kann hilfreich sein, wenn ein
jpayne@68 719 32\-Bit\-Executable auf einen 4\ GiB großen Adressraum (2 GiB auf MIPS32)
jpayne@68 720 zugreifen kann, wobei wir hoffen wollen, dass es in anderen Situationen
jpayne@68 721 keine negativen Effekte hat.
jpayne@68 722 .IP ""
jpayne@68 723 Siehe auch den Abschnitt \fBSpeicherbedarf\fP.
jpayne@68 724 .TP
jpayne@68 725 \fB\-\-memlimit\-decompress=\fP\fIGrenze\fP
jpayne@68 726 legt eine Begrenzung des Speicherverbrauchs für die Dekompression fest. Dies
jpayne@68 727 beeinflusst auch den Modus \fB\-\-list\fP. Falls die Aktion nicht ausführbar ist,
jpayne@68 728 ohne die \fIGrenze\fP zu überschreiten, gibt \fBxz\fP eine Fehlermeldung aus und
jpayne@68 729 die Dekompression wird fehlschlagen. Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
jpayne@68 730 zu möglichen Wegen, die \fIGrenze\fP anzugeben.
jpayne@68 731 .TP
jpayne@68 732 \fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP
jpayne@68 733 legt eine Begrenzung des Speicherverbrauchs für Multithread\-Dekompression
jpayne@68 734 fest. Dies beeinflusst lediglich die Anzahl der Threads; \fBxz\fP wird dadurch
jpayne@68 735 niemals die Dekompression einer Datei verweigern. Falls die \fIGrenze\fP für
jpayne@68 736 jegliches Multithreading zu niedrig ist, wird sie ignoriert und \fBxz\fP setzt
jpayne@68 737 im Einzelthread\-modus fort. Beachten Sie auch, dass bei der Verwendung von
jpayne@68 738 \fB\-\-memlimit\-decompress\fP dies stets sowohl auf den Einzelthread\-als auch auf
jpayne@68 739 den Multithread\-Modus angewendet wird und so die effektive \fIGrenze\fP für den
jpayne@68 740 Multithread\-Modus niemals höher sein wird als die mit
jpayne@68 741 \fB\-\-memlimit\-decompress\fP gesetzte Grenze.
jpayne@68 742 .IP ""
jpayne@68 743 Im Gegensatz zu anderen Optionen zur Begrenzung des Speicherverbrauchs hat
jpayne@68 744 \fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP eine systemspezifisch vorgegebene
jpayne@68 745 \fIGrenze\fP. Mit \fBxz \-\-info\-memory\fP können Sie deren aktuellen Wert anzeigen
jpayne@68 746 lassen.
jpayne@68 747 .IP ""
jpayne@68 748 Diese Option und ihr Standardwert existieren, weil die unbegrenzte
jpayne@68 749 threadbezogene Dekompression bei einigen Eingabedateien zu unglaublich
jpayne@68 750 großem Speicherverbrauch führen würde. Falls die vorgegebene \fIGrenze\fP auf
jpayne@68 751 Ihrem System zu niedrig ist, können Sie die \fIGrenze\fP durchaus erhöhen, aber
jpayne@68 752 setzen Sie sie niemals auf einen Wert größer als die Menge des nutzbaren
jpayne@68 753 Speichers, da \fBxz\fP bei entsprechenden Eingabedateien versuchen wird, diese
jpayne@68 754 Menge an Speicher auch bei einer geringen Anzahl von Threads zu
jpayne@68 755 verwnden. Speichermangel oder Auslagerung verbessern die
jpayne@68 756 Dekomprimierungsleistung nicht.
jpayne@68 757 .IP ""
jpayne@68 758 Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP für mögliche Wege zur Angabe der
jpayne@68 759 \fIGrenze\fP. Sezen der \fIGrenze\fP auf \fB0\fP setzt die \fIGrenze\fP auf den
jpayne@68 760 vorgegebenen systemspezifischen Wert zurück.
jpayne@68 761 .TP
jpayne@68 762 \fB\-M\fP \fIGrenze\fP, \fB\-\-memlimit=\fP\fIGrenze\fP, \fB\-\-memory=\fP\fIGrenze\fP
jpayne@68 763 Dies ist gleichbedeutend mit \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
jpayne@68 764 \fB\-\-memlimit\-decompress=\fP\fIGrenze\fP \fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP.
jpayne@68 765 .TP
jpayne@68 766 \fB\-\-no\-adjust\fP
jpayne@68 767 zeigt einen Fehler an und beendet, falls die Grenze der Speichernutzung
jpayne@68 768 nicht ohne Änderung der Einstellungen, welche die komprimierte Ausgabe
jpayne@68 769 beeinflussen, berücksichtigt werden kann. Das bedeutet, dass \fBxz\fP daran
jpayne@68 770 gehindert wird, den Encoder vom Multithread\-Modus in den Einzelthread\-Modus
jpayne@68 771 zu versetzen und die Größe des LZMA2\-Wörterbuchs zu reduzieren. Allerdings
jpayne@68 772 kann bei Verwendung dieser Option dennoch die Anzahl der Threads reduziert
jpayne@68 773 werden, um die Grenze der Speichernutzung zu halten, sofern dies die
jpayne@68 774 komprimierte Ausgabe nicht beeinflusst.
jpayne@68 775 .IP ""
jpayne@68 776 Die automatische Anpassung ist beim Erzeugen von Rohdatenströmen
jpayne@68 777 (\fB\-\-format=raw\fP) immer deaktiviert.
jpayne@68 778 .TP
jpayne@68 779 \fB\-T\fP \fIThreads\fP, \fB\-\-threads=\fP\fIThreads\fP
jpayne@68 780 gibt die Anzahl der zu verwendenden Arbeits\-Threads an. Wenn Sie \fIThreads\fP
jpayne@68 781 auf einen speziellen Wert \fB0\fP setzen, verwendet \fBxz\fP maximal so viele
jpayne@68 782 Threads, wie der/die Prozessor(en) im System untestützen. Die tatsächliche
jpayne@68 783 Anzahl kann geringer sein als die angegebenen \fIThreads\fP, wenn die
jpayne@68 784 Eingabedatei nicht groß genug für Threading mit den gegebenen Einstellungen
jpayne@68 785 ist oder wenn mehr Threads die Speicherbegrenzung übersteigen würden.
jpayne@68 786 .IP ""
jpayne@68 787 Die Multithread\- bzw. Einzelthread\-Kompressoren erzeugen unterschiedliche
jpayne@68 788 Ausgaben. Der Einzelthread\-Kompressor erzeugt die geringste Dateigröße, aber
jpayne@68 789 nur die Ausgabe des Multithread\-Kompressors kann mit mehreren Threads wieder
jpayne@68 790 dekomprimiert werden. Das Setzen der Anzahl der \fIThreads\fP auf \fB1\fP wird den
jpayne@68 791 Einzelthread\-Modus verwenden. Das Setzen der Anzahl der \fIThreads\fP auf
jpayne@68 792 einen anderen Wert einschließlich \fB0\fP verwendet den Multithread\-Kompressor,
jpayne@68 793 und zwar sogar dann, wenn das System nur einen einzigen Hardware\-Thread
jpayne@68 794 unterstützt (\fBxz\fP 5.2.x verwendete in diesem Fall noch den
jpayne@68 795 Einzelthread\-Modus).
jpayne@68 796 .IP ""
jpayne@68 797 Um den Multithread\-Modus mit nur einem einzigen Thread zu verwenden, setzen
jpayne@68 798 Sie die Anzahl der \fIThreads\fP auf \fB+1\fP. Das Präfix \fB+\fP hat mit Werten
jpayne@68 799 verschieden von \fB1\fP keinen Effekt. Eine Begrenzung des Speicherverbrauchs
jpayne@68 800 kann \fBxz\fP dennoch veranlassen, den Einzelthread\-Modus zu verwenden, außer
jpayne@68 801 wenn \fB\-\-no\-adjust\fP verwendet wird. Die Unterstützung für das Präfix \fB+\fP
jpayne@68 802 wurde in \fBxz\fP 5.4.0 hinzugefügt.
jpayne@68 803 .IP ""
jpayne@68 804 Falls das automatische Setzen der Anzahl der Threads angefordert und keine
jpayne@68 805 Speicherbegrenzung angegeben wurde, dann wird eine systemspezifisch
jpayne@68 806 vorgegebene weiche Grenze verwendet, um eventuell die Anzahl der Threads zu
jpayne@68 807 begrenzen. Es ist eine weiche Grenze im Sinne davon, dass sie ignoriert
jpayne@68 808 wird, falls die Anzahl der Threads 1 ist; daher wird eine weiche Grenze
jpayne@68 809 \fBxz\fP niemals an der Kompression oder Dekompression hindern. Diese
jpayne@68 810 vorgegebene weiche Grenze veranlasst \fBxz\fP nicht, vom Multithread\-Modus in
jpayne@68 811 den Einzelthread\-Modus zu wechseln. Die aktiven Grenzen können Sie mit dem
jpayne@68 812 Befehl \fBxz \-\-info\-memory\fP anzeigen lassen.
jpayne@68 813 .IP ""
jpayne@68 814 Die gegenwärtig einzige Threading\-Methode teilt die Eingabe in Blöcke und
jpayne@68 815 komprimiert diese unabhängig voneinander. Die vorgegebene Blockgröße ist von
jpayne@68 816 der Kompressionsstufe abhängig und kann mit der Option
jpayne@68 817 \fB\-\-block\-size=\fP\fIGröße\fP außer Kraft gesetzt werden.
jpayne@68 818 .IP ""
jpayne@68 819 Eine thread\-basierte Dekompression wird nur bei Dateien funktionieren, die
jpayne@68 820 mehrere Blöcke mit Größeninformationen in deren Headern enthalten. Alle im
jpayne@68 821 Multi\-Thread\-Modus komprimierten Dateien, die groß genug sind, erfüllen
jpayne@68 822 diese Bedingung, im Einzel\-Thread\-Modus komprimierte Dateien dagegen nicht,
jpayne@68 823 selbst wenn \fB\-\-block\-size=\fP\fIGröße\fP verwendet wurde.
jpayne@68 824 .IP ""
jpayne@68 825 Der Vorgabewert für \fIThreads\fP is \fB0\fP. In \fBxz\fP 5.4.x und älteren Versionen
jpayne@68 826 ist der Vorgabewert \fB1\fP.
jpayne@68 827 .
jpayne@68 828 .SS "Benutzerdefinierte Filterketten für die Kompression"
jpayne@68 829 Eine benutzerdefinierte Filterkette ermöglicht die Angabe detaillierter
jpayne@68 830 Kompressionseinstellungen, anstatt von den Voreinstellungen auszugehen. Wenn
jpayne@68 831 eine benutzerdefinierte Filterkette angegeben wird, werden die vorher in der
jpayne@68 832 Befehlszeile angegebenen Voreinstellungsoptionen (\fB\-0\fP … \fB\-9\fP und
jpayne@68 833 \fB\-\-extreme\fP) außer Kraft gesetzt. Wenn eine Voreinstellungsoption nach
jpayne@68 834 einer oder mehreren benutzerdefinierten Filterkettenoptionen angegeben wird,
jpayne@68 835 dann wird die neue Voreinstellung wirksam und die zuvor angegebenen
jpayne@68 836 Filterkettenoptionen werden außer Kraft gesetzt.
jpayne@68 837 .PP
jpayne@68 838 Eine Filterkette ist mit dem Piping (der Weiterleitung) in der Befehlszeile
jpayne@68 839 vergleichbar. Bei der Kompression gelangt die unkomprimierte Eingabe in den
jpayne@68 840 ersten Filter, dessen Ausgabe wiederum in den zweiten Filter geleitet wird
jpayne@68 841 (sofern ein solcher vorhanden ist). Die Ausgabe des letzten Filters wird in
jpayne@68 842 die komprimierte Datei geschrieben. In einer Filterkette sind maximal vier
jpayne@68 843 Filter zulässig, aber typischerweise besteht eine Filterkette nur aus einem
jpayne@68 844 oder zwei Filtern.
jpayne@68 845 .PP
jpayne@68 846 Bei vielen Filtern ist die Positionierung in der Filterkette eingeschränkt:
jpayne@68 847 Einige Filter sind nur als letzte in der Kette verwendbar, einige können
jpayne@68 848 nicht als letzte Filter gesetzt werden, und andere funktionieren an
jpayne@68 849 beliebiger Stelle. Abhängig von dem Filter ist diese Beschränkung entweder
jpayne@68 850 auf das Design des Filters selbst zurückzuführen oder ist aus
jpayne@68 851 Sicherheitsgründen vorhanden.
jpayne@68 852 .PP
jpayne@68 853 Eine benutzerdefinierte Filterkette kann auf zwei verschiedene Arten
jpayne@68 854 angegeben werden. Die Optionen \fB\-\-filters=\fP\fIFilter\fP und
jpayne@68 855 \fB\-\-filters1=\fP\fIFilter\fP \&…\& \fB\-\-filters9=\fP\fIFilter\fP ermöglichen die Angabe
jpayne@68 856 einer ganzen Filterkette in einer einzelnen Option gemäß der
jpayne@68 857 Liblzma\-Filterzeichenkettensyntax. Alternativ können Sie eine Filterkette
jpayne@68 858 mit einer oder mehreren individuellen Filteroptionen in der Reihenfolge
jpayne@68 859 angeben, in der sie in der Filterkette verwendet werden sollen. Daher ist
jpayne@68 860 die Reihenfolge der individuellen Filteroptionen wichtig! Beim Dekodieren
jpayne@68 861 von Rohdatenströmen (\fB\-\-format=raw\fP) muss die Filterkette in der gleichen
jpayne@68 862 Reihenfolge wie bei der Komprimierung angegeben werden. Alle individuellen
jpayne@68 863 Filter\- oder Voreinstellungsoptionen, die \fIvor\fP der vollen
jpayne@68 864 Filterkettenoption (\fB\-\-filters=\fP\fIFilter\fP) angegeben werden, werden
jpayne@68 865 verworfen. Individuelle Filter, die \fInach\fP der vollen Filterkettenoption
jpayne@68 866 angegeben werden, setzen die Filterkette zurück
jpayne@68 867 .PP
jpayne@68 868 Sowohl vollständige als auch individuelle Filteroptionen akzeptieren
jpayne@68 869 filterspezifische \fIOptionen\fP in einer durch Kommata getrennten
jpayne@68 870 Liste. Zusätzliche Kommata in den \fIOptionen\fP werden ignoriert. Jede Option
jpayne@68 871 hat einen Standardwert, daher brauchen Sie nur jene anzugeben, die Sie
jpayne@68 872 ändern wollen.
jpayne@68 873 .PP
jpayne@68 874 Um die gesamte Filterkette und die \fIOptionen\fP anzuzeigen, rufen Sie \fBxz \-vv\fP auf (was gleichbedeutend mit der zweimaligen Angabe von \fB\-\-verbose\fP
jpayne@68 875 ist). Dies funktioniert auch zum Betrachten der von den Voreinstellungen
jpayne@68 876 verwendeten Filterkettenoptionen.
jpayne@68 877 .TP
jpayne@68 878 \fB\-\-filters=\fP\fIFilter\fP
jpayne@68 879 gibt die vollständige Filterkette oder eine Voreinstellung in einer
jpayne@68 880 einzelnen Option an. Mehrere Filter können durch Leerzeichen oder zwei
jpayne@68 881 Minuszeichen (\fB\-\-\fP) voneinander getrennt werden. Es kann notwendig sein,
jpayne@68 882 die \fIFilter\fP in der Shell\-Befehlszeile zu maskieren, so dass diese als
jpayne@68 883 einzelne Option ausgewertet werden. Um Optionen Werte zuzuordnen, verwenden
jpayne@68 884 Sie \fB:\fP oder \fB=\fP. Einer Voreinstellung kann ein \fB\-\fP vorangestellt werden,
jpayne@68 885 dem keiner oder mehrere Schalter folgen. Der einzige unterstützte Schalter
jpayne@68 886 ist \fBe\fP zum Anwenden der gleichen Optionen wie \fB\-\-extreme\fP.
jpayne@68 887 .TP
jpayne@68 888 \fB\-\-filters1\fP=\fIFilter\fP … \fB\-\-filters9\fP=\fIFilter\fP
jpayne@68 889 gibt bis zu neun optionale Filterketten an, die mit \fB\-\-block\-list\fP
jpayne@68 890 verwendet werden können.
jpayne@68 891 .IP ""
jpayne@68 892 Wenn Sie beispielsweise ein Archiv mit ausführbaren Dateien gefolgt von
jpayne@68 893 Textdateien komprimieren, könnte der Teil mit den ausführbaren Dateien eine
jpayne@68 894 Filterkette mit einem BCJ\-Filter und der Textdateiteil lediglich den
jpayne@68 895 LZMA2\-Filter verwenden.
jpayne@68 896 .TP
jpayne@68 897 \fB\-\-filters\-help\fP
jpayne@68 898 zeigt eine Hilfemeldung an, welche beschreibt, wie Voreinstellungen und
jpayne@68 899 benutzerdefinierte Filterketten in den Optionen \fB\-\-filters\fP und
jpayne@68 900 \fB\-\-filters1=\fP\fIFilter\fP \&… \& \fB\-\-filters9=\fP\fIFilter\fP angegeben werden und
jpayne@68 901 beendet das Programm.
jpayne@68 902 .TP
jpayne@68 903 \fB\-\-lzma1\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 904 .PD 0
jpayne@68 905 .TP
jpayne@68 906 \fB\-\-lzma2\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 907 .PD
jpayne@68 908 fügt LZMA1\- oder LZMA2\-Filter zur Filterkette hinzu. Diese Filter können nur
jpayne@68 909 als letzte Filter in der Kette verwendet werden.
jpayne@68 910 .IP ""
jpayne@68 911 LZMA1 ist ein veralteter Filter, welcher nur wegen des veralteten
jpayne@68 912 \&\fB.lzma\fP\-Dateiformats unterstützt wird, welches nur LZMA1 unterstützt. LZMA2
jpayne@68 913 ist eine aktualisierte Version von LZMA1, welche einige praktische Probleme
jpayne@68 914 von LZMA1 behebt. Das \fB.xz\fP\-Format verwendet LZMA2 und unterstützt LZMA1
jpayne@68 915 gar nicht. Kompressionsgeschwindigkeit und \-verhältnis sind bei LZMA1 und
jpayne@68 916 LZMA2 praktisch gleich.
jpayne@68 917 .IP ""
jpayne@68 918 LZMA1 und LZMA2 haben die gleichen \fIOptionen\fP:
jpayne@68 919 .RS
jpayne@68 920 .TP
jpayne@68 921 \fBpreset=\fP\fIVoreinstellung\fP
jpayne@68 922 setzt alle LZMA1\- oder LZMA2\-\fIOptionen\fP auf die \fIVoreinstellung\fP
jpayne@68 923 zurück. Diese \fIVoreinstellung\fP wird in Form einer Ganzzahl angegeben, der
jpayne@68 924 ein aus einem einzelnen Buchstaben bestehender Voreinstellungsmodifikator
jpayne@68 925 folgen kann. Die Ganzzahl kann \fB0\fP bis \fB9\fP sein, entsprechend den
jpayne@68 926 Befehlszeilenoptionen \fB\-0\fP … \fB\-9\fP. Gegenwärtig ist \fBe\fP der einzige
jpayne@68 927 unterstützte Modifikator, was \fB\-\-extreme\fP entspricht. Wenn keine
jpayne@68 928 \fBVoreinstellung\fP angegeben ist, werden die Standardwerte der LZMA1\- oder
jpayne@68 929 LZMA2\-\fIOptionen\fP der Voreinstellung \fB6\fP entnommen.
jpayne@68 930 .TP
jpayne@68 931 \fBdict=\fP\fIGröße\fP
jpayne@68 932 Die \fIGröße\fP des Wörterbuchs (Chronikpuffers) gibt an, wie viel Byte der
jpayne@68 933 kürzlich verarbeiteten unkomprimierten Daten im Speicher behalten werden
jpayne@68 934 sollen. Der Algorithmus versucht, sich wiederholende Byte\-Abfolgen
jpayne@68 935 (Übereinstimmungen) in den unkomprimierten Daten zu finden und diese durch
jpayne@68 936 Referenzen zu den Daten zu ersetzen, die sich gegenwärtig im Wörterbuch
jpayne@68 937 befinden. Je größer das Wörterbuch, umso größer ist die Chance, eine
jpayne@68 938 Übereinstimmung zu finden. Daher bewirkt eine Erhöhung der \fIGröße\fP des
jpayne@68 939 Wörterbuchs üblicherweise ein besseres Kompressionsverhältnis, aber ein
jpayne@68 940 Wörterbuch, das größer ist als die unkomprimierte Datei, wäre
jpayne@68 941 Speicherverschwendung.
jpayne@68 942 .IP ""
jpayne@68 943 Typische Wörterbuch\-\fIGrößen\fP liegen im Bereich von 64\ KiB bis 64\ MiB. Das
jpayne@68 944 Minimum ist 4\ KiB. Das Maximum für die Kompression ist gegenwärtig 1.5\ GiB
jpayne@68 945 (1536\ MiB). Bei der Dekompression wird bereits eine Wörterbuchgröße bis zu
jpayne@68 946 4\ GiB minus 1 Byte unterstützt, welche das Maximum für die LZMA1\- und
jpayne@68 947 LZMA2\-Datenstromformate ist.
jpayne@68 948 .IP ""
jpayne@68 949 Die \fIGröße\fP des Wörterbuchs und der Übereinstimmungsfinder (\fIÜf\fP)
jpayne@68 950 bestimmen zusammen den Speicherverbrauch des LZMA1\- oder
jpayne@68 951 LZMA2\-Kodierers. Bei der Dekompression ist ein Wörterbuch der gleichen
jpayne@68 952 \fIGröße\fP (oder ein noch größeres) wie bei der Kompression erforderlich,
jpayne@68 953 daher wird der Speicherverbrauch des Dekoders durch die Größe des bei der
jpayne@68 954 Kompression verwendeten Wörterbuchs bestimmt. Die \fB.xz\fP\-Header speichern
jpayne@68 955 die \fIGröße\fP des Wörterbuchs entweder als 2^\fIn\fP oder 2^\fIn\fP + 2^(\fIn\fP\-1),
jpayne@68 956 so dass diese \fIGrößen\fP für die Kompression etwas bevorzugt werden. Andere
jpayne@68 957 \fIGrößen\fP werden beim Speichern in den \fB.xz\fP\-Headern aufgerundet.
jpayne@68 958 .TP
jpayne@68 959 \fBlc=\fP\fIlc\fP
jpayne@68 960 gibt die Anzahl der literalen Kontextbits an. Das Minimum ist 0 und das
jpayne@68 961 Maximum 4; der Standardwert ist 3. Außerdem darf die Summe von \fIlc\fP und
jpayne@68 962 \fIlp\fP nicht größer als 4 sein.
jpayne@68 963 .IP ""
jpayne@68 964 Alle Bytes, die nicht als Übereinstimmungen kodiert werden können, werden
jpayne@68 965 als Literale kodiert. Solche Literale sind einfache 8\-bit\-Bytes, die jeweils
jpayne@68 966 für sich kodiert werden.
jpayne@68 967 .IP ""
jpayne@68 968 Bei der Literalkodierung wird angenommen, dass die höchsten \fIlc\fP\-Bits des
jpayne@68 969 zuvor unkomprimierten Bytes mit dem nächsten Byte in Beziehung stehen. Zum
jpayne@68 970 Beispiel folgt in typischen englischsprachigen Texten auf einen
jpayne@68 971 Großbuchstaben ein Kleinbuchstabe und auf einen Kleinbuchstaben
jpayne@68 972 üblicherweise wieder ein Kleinbuchstabe. Im US\-ASCII\-Zeichensatz sind die
jpayne@68 973 höchsten drei Bits 010 für Großbuchstaben und 011 für Kleinbuchstaben. Wenn
jpayne@68 974 \fIlc\fP mindestens 3 ist, kann die literale Kodierung diese Eigenschaft der
jpayne@68 975 unkomprimierten Daten ausnutzen.
jpayne@68 976 .IP ""
jpayne@68 977 Der Vorgabewert (3) ist üblicherweise gut. Wenn Sie die maximale Kompression
jpayne@68 978 erreichen wollen, versuchen Sie \fBlc=4\fP. Manchmal hilft es ein wenig, doch
jpayne@68 979 manchmal verschlechtert es die Kompression. Im letzteren Fall versuchen Sie
jpayne@68 980 zum Beispiel auch\& \fBlc=2\fP.
jpayne@68 981 .TP
jpayne@68 982 \fBlp=\fP\fIlp\fP
jpayne@68 983 gibt die Anzahl der literalen Positionsbits an. Das Minimum ist 0 und das
jpayne@68 984 Maximum 4; die Vorgabe ist 0.
jpayne@68 985 .IP ""
jpayne@68 986 \fILp\fP beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten beim
jpayne@68 987 Kodieren von Literalen angenommen wird. Siehe \fIpb\fP weiter unten für weitere
jpayne@68 988 Informationen zur Ausrichtung.
jpayne@68 989 .TP
jpayne@68 990 \fBpb=\fP\fIAnzahl\fP
jpayne@68 991 legt die Anzahl der Positions\-Bits fest. Das Minimum ist 0 und das Maximum
jpayne@68 992 4; Standard ist 2.
jpayne@68 993 .IP ""
jpayne@68 994 \fIPb\fP beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten
jpayne@68 995 generell angenommen wird. Standardmäßig wird eine Vier\-Byte\-Ausrichtung
jpayne@68 996 angenommen (2^\fIpb\fP=2^2=4), was oft eine gute Wahl ist, wenn es keine
jpayne@68 997 bessere Schätzung gibt.
jpayne@68 998 .IP ""
jpayne@68 999 Wenn die Ausrichtung bekannt ist, kann das entsprechende Setzen von \fIpb\fP
jpayne@68 1000 die Dateigröße ein wenig verringern. Wenn Textdateien zum Beispiel eine
jpayne@68 1001 Ein\-Byte\-Ausrichtung haben (US\-ASCII, ISO\-8859\-*, UTF\-8), kann das Setzen
jpayne@68 1002 von \fBpb=0\fP die Kompression etwas verbessern. Für UTF\-16\-Text ist \fBpb=1\fP
jpayne@68 1003 eine gute Wahl. Wenn die Ausrichtung eine ungerade Zahl wie beispielsweise 3
jpayne@68 1004 Byte ist, könnte \fBpb=0\fP die beste Wahl sein.
jpayne@68 1005 .IP ""
jpayne@68 1006 Obwohl die angenommene Ausrichtung mit \fIpb\fP und \fIlp\fP angepasst werden
jpayne@68 1007 kann, bevorzugen LZMA1 und LZMA2 noch etwas die 16\-Byte\-Ausrichtung. Das
jpayne@68 1008 sollten Sie vielleicht beim Design von Dateiformaten berücksichtigen, die
jpayne@68 1009 wahrscheinlich oft mit LZMA1 oder LZMA2 komprimiert werden.
jpayne@68 1010 .TP
jpayne@68 1011 \fBmf=\fP\fIÜf\fP
jpayne@68 1012 Der Übereinstimmungsfinder hat einen großen Einfluss auf die Geschwindigkeit
jpayne@68 1013 des Kodierers, den Speicherbedarf und das
jpayne@68 1014 Kompressionsverhältnis. Üblicherweise sind auf Hash\-Ketten basierende
jpayne@68 1015 Übereinstimmungsfinder schneller als jene, die mit Binärbäumen arbeiten. Die
jpayne@68 1016 Vorgabe hängt von der \fIVoreinstellungsstufe\fP ab: 0 verwendet \fBhc3\fP, 1\-3
jpayne@68 1017 verwenden \fBhc4\fP und der Rest verwendet \fBbt4\fP.
jpayne@68 1018 .IP ""
jpayne@68 1019 Die folgenden Übereinstimmungsfinder werden unterstützt. Die Formeln zur
jpayne@68 1020 Ermittlung des Speicherverbrauchs sind grobe Schätzungen, die der Realität
jpayne@68 1021 am nächsten kommen, wenn \fIWörterbuch\fP eine Zweierpotenz ist.
jpayne@68 1022 .RS
jpayne@68 1023 .TP
jpayne@68 1024 \fBhc3\fP
jpayne@68 1025 Hash\-Kette mit 2\- und 3\-Byte\-Hashing
jpayne@68 1026 .br
jpayne@68 1027 Minimalwert für \fInice\fP: 3
jpayne@68 1028 .br
jpayne@68 1029 Speicherbedarf:
jpayne@68 1030 .br
jpayne@68 1031 \fIdict\fP * 7,5 (falls \fIdict\fP <= 16 MiB);
jpayne@68 1032 .br
jpayne@68 1033 \fIdict\fP * 5,5 + 64 MiB (falls \fIdict\fP > 16 MiB)
jpayne@68 1034 .TP
jpayne@68 1035 \fBhc4\fP
jpayne@68 1036 Hash\-Kette mit 2\-, 3\- und 4\-Byte\-Hashing
jpayne@68 1037 .br
jpayne@68 1038 Minimaler Wert für \fInice\fP: 4
jpayne@68 1039 .br
jpayne@68 1040 Speicherbedarf:
jpayne@68 1041 .br
jpayne@68 1042 \fIdict\fP * 7,5 (falls \fIdict\fP <= 32 MiB ist);
jpayne@68 1043 .br
jpayne@68 1044 \fIdict\fP * 6,5 (falls \fIdict\fP > 32 MiB ist)
jpayne@68 1045 .TP
jpayne@68 1046 \fBbt2\fP
jpayne@68 1047 Binärbaum mit 2\-Byte\-Hashing
jpayne@68 1048 .br
jpayne@68 1049 Minimaler Wert für \fInice\fP: 2
jpayne@68 1050 .br
jpayne@68 1051 Speicherverbrauch: \fIdict\fP * 9.5
jpayne@68 1052 .TP
jpayne@68 1053 \fBbt3\fP
jpayne@68 1054 Binärbaum mit 2\- und 3\-Byte\-Hashing
jpayne@68 1055 .br
jpayne@68 1056 Minimalwert für \fInice\fP: 3
jpayne@68 1057 .br
jpayne@68 1058 Speicherbedarf:
jpayne@68 1059 .br
jpayne@68 1060 \fIdict\fP * 11,5 (falls \fIdict\fP <= 16 MiB ist);
jpayne@68 1061 .br
jpayne@68 1062 \fIdict\fP * 9,5 + 64 MiB (falls \fIdict\fP > 16 MiB ist)
jpayne@68 1063 .TP
jpayne@68 1064 \fBbt4\fP
jpayne@68 1065 Binärbaum mit 2\-, 3\- und 4\-Byte\-Hashing
jpayne@68 1066 .br
jpayne@68 1067 Minimaler Wert für \fInice\fP: 4
jpayne@68 1068 .br
jpayne@68 1069 Speicherbedarf:
jpayne@68 1070 .br
jpayne@68 1071 \fIdict\fP * 11,5 (falls \fIdict\fP <= 32 MiB ist);
jpayne@68 1072 .br
jpayne@68 1073 \fIdict\fP * 10,5 (falls \fIdict\fP > 32 MiB ist)
jpayne@68 1074 .RE
jpayne@68 1075 .TP
jpayne@68 1076 \fBmode=\fP\fIModus\fP
jpayne@68 1077 gibt die Methode zum Analysieren der vom Übereinstimmungsfinder gelieferten
jpayne@68 1078 Daten an. Als \fIModi\fP werden \fBfast\fP und \fBnormal\fP unterstützt. Die Vorgabe
jpayne@68 1079 ist \fBfast\fP für die \fIVoreinstellungsstufen\fP 0\-3 und \fBnormal\fP für die
jpayne@68 1080 \fIVoreinstellungsstufen\fP 4\-9.
jpayne@68 1081 .IP ""
jpayne@68 1082 Üblicherweise wird \fBfast\fP mit Hashketten\-basierten Übereinstimmungsfindern
jpayne@68 1083 und \fBnormal\fP mit Binärbaum\-basierten Übereinstimmungsfindern verwendet. So
jpayne@68 1084 machen es auch die \fIVoreinstellungsstufen\fP.
jpayne@68 1085 .TP
jpayne@68 1086 \fBnice=\fP\fInice\fP
jpayne@68 1087 gibt an, was als annehmbarer Wert für eine Übereinstimmung angesehen werden
jpayne@68 1088 kann. Wenn eine Übereinstimmung gefunden wird, die mindestens diesen
jpayne@68 1089 \fInice\fP\-Wert hat, sucht der Algorithmus nicht weiter nach besseren
jpayne@68 1090 Übereinstimmungen.
jpayne@68 1091 .IP ""
jpayne@68 1092 Der \fInice\fP\-Wert kann 2\-273 Byte sein. Höhere Werte tendieren zu einem
jpayne@68 1093 besseren Kompressionsverhältnis, aber auf Kosten der Geschwindigkeit. Die
jpayne@68 1094 Vorgabe hängt von der \fIVoreinstellungsstufe\fP ab.
jpayne@68 1095 .TP
jpayne@68 1096 \fBdepth=\fP\fITiefe\fP
jpayne@68 1097 legt die maximale Suchtiefe im Übereinstimmungsfinder fest. Vorgegeben ist
jpayne@68 1098 der spezielle Wert 0, der den Kompressor veranlasst, einen annehmbaren Wert
jpayne@68 1099 für \fITiefe\fP aus \fIÜf\fP und \fInice\fP\-Wert zu bestimmen.
jpayne@68 1100 .IP ""
jpayne@68 1101 Die angemessene \fITiefe\fP für Hash\-Ketten ist 4\-100 und 16\-1000 für
jpayne@68 1102 Binärbäume. Hohe Werte für die \fITiefe\fP können den Kodierer bei einigen
jpayne@68 1103 Dateien extrem verlangsamen. Vermeiden Sie es, die \fITiefe\fP über einen Wert
jpayne@68 1104 von 100 zu setzen, oder stellen Sie sich darauf ein, die Kompression
jpayne@68 1105 abzubrechen, wenn sie zu lange dauert.
jpayne@68 1106 .RE
jpayne@68 1107 .IP ""
jpayne@68 1108 Beim Dekodieren von Rohdatenströmen (\fB\-\-format=raw\fP) benötigt LZMA2 nur die
jpayne@68 1109 Wörterbuch\-\fIGröße\fP. LZMA1 benötigt außerdem \fIlc\fP, \fIlp\fP und \fIpb\fP.
jpayne@68 1110 .TP
jpayne@68 1111 \fB\-\-x86\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1112 .PD 0
jpayne@68 1113 .TP
jpayne@68 1114 \fB\-\-arm\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1115 .TP
jpayne@68 1116 \fB\-\-armthumb\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1117 .TP
jpayne@68 1118 \fB\-\-arm64\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1119 .TP
jpayne@68 1120 \fB\-\-powerpc\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1121 .TP
jpayne@68 1122 \fB\-\-ia64\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1123 .TP
jpayne@68 1124 \fB\-\-sparc\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1125 .TP
jpayne@68 1126 \fB\-\-riscv\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1127 .PD
jpayne@68 1128 fügt ein »Branch/Call/Jump«\-(BCJ\-)Filter zur Filterkette hinzu. Diese Filter
jpayne@68 1129 können nicht als letzter Filter in der Filterkette verwendet werden.
jpayne@68 1130 .IP ""
jpayne@68 1131 Ein BCJ\-Filter wandelt relative Adressen im Maschinencode in deren absolute
jpayne@68 1132 Gegenstücke um. Die Datengröße wird dadurch nicht geändert, aber die
jpayne@68 1133 Redundanz erhöht, was LZMA2 dabei helfen kann, eine um 10 bis 15% kleinere
jpayne@68 1134 \&\fB.xz\fP\-Datei zu erstellen. Die BCJ\-Filter sind immer reversibel, daher
jpayne@68 1135 verursacht die Anwendung eines BCJ\-Filters auf den falschen Datentyp keinen
jpayne@68 1136 Datenverlust, wobei aber das Kompressionsverhältnis etwas schlechter werden
jpayne@68 1137 könnte. Die BCJ\-Filter sind sehr schnell und verbrauchen nur wenig mehr
jpayne@68 1138 Speicher.
jpayne@68 1139 .IP ""
jpayne@68 1140 Diese BCJ\-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:
jpayne@68 1141 .RS
jpayne@68 1142 .IP \(bu 3
jpayne@68 1143 In einigen Dateitypen, die ausführbaren Code enthalten (zum Beispiel
jpayne@68 1144 Objektdateien, statische Bibliotheken und Linux\-Kernelmodule), sind die
jpayne@68 1145 Adressen in den Anweisungen mit Füllwerten gefüllt. Diese BCJ\-Filter führen
jpayne@68 1146 dennoch die Adressumwandlung aus, wodurch die Kompression bei diesen Dateien
jpayne@68 1147 schlechter wird.
jpayne@68 1148 .IP \(bu 3
jpayne@68 1149 Falls ein BCJ\-Filter auf ein Archiv angewendet wird, ist es möglich, dass
jpayne@68 1150 das Kompressionsverhältnis schlechter als ohne Filter wird. Falls es
jpayne@68 1151 beispielsweise ähnliche oder sogar identische ausführbare Dateien gibt, dann
jpayne@68 1152 werden diese durch die Filterung wahrscheinlich »unähnlicher« und
jpayne@68 1153 verschlechtern dadurch das Kompressionsverhältnis. Der Inhalt
jpayne@68 1154 nicht\-ausführbarer Dateien im gleichen Archiv kann sich ebenfalls darauf
jpayne@68 1155 auswirken. In der Praxis werden Sie durch Versuche mit oder ohne BCJ\-Filter
jpayne@68 1156 selbst herausfinden müssen, was situationsbezogen besser ist.
jpayne@68 1157 .RE
jpayne@68 1158 .IP ""
jpayne@68 1159 Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen: Die
jpayne@68 1160 ausführbare Datei muss in den Eingabedateien einem Vielfachen dieses Wertes
jpayne@68 1161 entsprechen, damit dieser Filter funktioniert.
jpayne@68 1162 .RS
jpayne@68 1163 .RS
jpayne@68 1164 .PP
jpayne@68 1165 .TS
jpayne@68 1166 tab(;);
jpayne@68 1167 l n l
jpayne@68 1168 l n l.
jpayne@68 1169 Filter;Ausrichtung;Hinweise
jpayne@68 1170 x86;1;32\-Bit oder 64\-Bit x86
jpayne@68 1171 ARM;4;
jpayne@68 1172 ARM\-Thumb;2;
jpayne@68 1173 ARM64;4;4096\-Byte\-Ausrichtung ist optimal
jpayne@68 1174 PowerPC;4;Nur Big Endian
jpayne@68 1175 IA\-64;16;Itanium
jpayne@68 1176 SPARC;4;
jpayne@68 1177 RISC\-V;2;
jpayne@68 1178 .TE
jpayne@68 1179 .RE
jpayne@68 1180 .RE
jpayne@68 1181 .IP ""
jpayne@68 1182 Da die BCJ\-gefilterten Daten üblicherweise mit LZMA2 komprimiert sind, kann
jpayne@68 1183 das Kompressionsverhältnis dadurch etwas verbessert werden, dass die
jpayne@68 1184 LZMA2\-Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten
jpayne@68 1185 BCJ\-Filters entsprechen. Beispiele:
jpayne@68 1186 .RS
jpayne@68 1187 .IP \(bu 3
jpayne@68 1188 Der IA\-64\-Filter hat eine 16\-Byte\-Ausrichtung, daher ist \fBpb=4,lp=4,lc=0\fP
jpayne@68 1189 für LZMA2 passend (2^4=16).
jpayne@68 1190 .IP \(bu 3
jpayne@68 1191 RISC\-V\-Code hat eine 2\-Byte\- oder 4\-Byte\-Ausrichtung, abhängig davon, ob die
jpayne@68 1192 Datei 16\-bit\-komprimierte Instruktionen enthält (die C\-Erweiterung). Wenn
jpayne@68 1193 16\-bit\-Instruktionen verwendet werden, ist \fBpb=2,lp=1,lc=3\fP oder
jpayne@68 1194 \fBpb=1,lp=1,lc=3\fP passend. Wenn keine 16\-bit\-Instruktionen vorhanden sind,
jpayne@68 1195 ist \fBpb=2,lp=2,lc=2\fP am besten. Mit \fBreadelf \-h\fP können Sie überprüfen, ob
jpayne@68 1196 »RVC« in der »Flags«\-Zeile auftritt.
jpayne@68 1197 .IP \(bu 3
jpayne@68 1198 ARM64 hat stets eine 4\-Byte\-Ausrichtung, daher ist \fBpb=2,lp=2,lc=2\fP am
jpayne@68 1199 besten.
jpayne@68 1200 .IP \(bu 3
jpayne@68 1201 Der x86\-Filter stellt eine Ausnahme dar. Es ist üblicherweise eine gute
jpayne@68 1202 Wahl, bei den Voreinstellungen von LZMA2 (\fBpb=2,lp=0,lc=3\fP) zu bleiben,
jpayne@68 1203 wenn Sie ausführbare x86\-Dateien komprimieren
jpayne@68 1204 .RE
jpayne@68 1205 .IP ""
jpayne@68 1206 Alle BCJ\-Filter unterstützen die gleichen \fIOptionen\fP:
jpayne@68 1207 .RS
jpayne@68 1208 .TP
jpayne@68 1209 \fBstart=\fP\fIVersatz\fP
jpayne@68 1210 gibt den Start\-\fIVersatz\fP an, der bei der Umwandlung zwischen relativen und
jpayne@68 1211 absoluten Adressen verwendet wird. Der \fIVersatz\fP muss ein Vielfaches der
jpayne@68 1212 Filterausrichtung sein (siehe die Tabelle oben). Der Standardwert ist 0. In
jpayne@68 1213 der Praxis ist dieser Standardwert gut; die Angabe eines benutzerdefinierten
jpayne@68 1214 \fIVersatzes\fP ist fast immer unnütz.
jpayne@68 1215 .RE
jpayne@68 1216 .TP
jpayne@68 1217 \fB\-\-delta\fP[\fB=\fP\fIOptionen\fP]
jpayne@68 1218 fügt den Delta\-Filter zur Filterkette hinzu. Der Delta\-Filter kann nicht als
jpayne@68 1219 letzter Filter in der Filterkette verwendet werden.
jpayne@68 1220 .IP ""
jpayne@68 1221 Gegenwärtig wird nur eine einfache, Byte\-bezogene Delta\-Berechnung
jpayne@68 1222 unterstützt. Beim Komprimieren von zum Beispiel unkomprimierten
jpayne@68 1223 Bitmap\-Bildern oder unkomprimierten PCM\-Audiodaten kann es jedoch sinnvoll
jpayne@68 1224 sein. Dennoch können für spezielle Zwecke entworfene Algorithmen deutlich
jpayne@68 1225 bessere Ergebnisse als Delta und LZMA2 liefern. Dies trifft insbesondere auf
jpayne@68 1226 Audiodaten zu, die sich zum Beispiel mit \fBflac\fP(1) schneller und besser
jpayne@68 1227 komprimieren lassen.
jpayne@68 1228 .IP ""
jpayne@68 1229 Unterstützte \fIOptionen\fP:
jpayne@68 1230 .RS
jpayne@68 1231 .TP
jpayne@68 1232 \fBdist=\fP\fIAbstand\fP
jpayne@68 1233 gibt den \fIAbstand\fP der Delta\-Berechnung in Byte an. Zulässige Werte für den
jpayne@68 1234 \fIAbstand\fP sind 1 bis 256. Der Vorgabewert ist 1.
jpayne@68 1235 .IP ""
jpayne@68 1236 Zum Beispiel wird mit \fBdist=2\fP und der 8\-Byte\-Eingabe A1 B1 A2 B3 A3 B5 A4
jpayne@68 1237 B7 die Ausgabe A1 B1 01 02 01 02 01 02 sein.
jpayne@68 1238 .RE
jpayne@68 1239 .
jpayne@68 1240 .SS "Andere Optionen"
jpayne@68 1241 .TP
jpayne@68 1242 \fB\-q\fP, \fB\-\-quiet\fP
jpayne@68 1243 unterdrückt Warnungen und Hinweise. Geben Sie dies zweimal an, um auch
jpayne@68 1244 Fehlermeldungen zu unterdrücken. Diese Option wirkt sich nicht auf den
jpayne@68 1245 Exit\-Status aus. Das bedeutet, das selbst bei einer unterdrückten Warnung
jpayne@68 1246 der Exit\-Status zur Anzeige einer Warnung dennoch verwendet wird.
jpayne@68 1247 .TP
jpayne@68 1248 \fB\-v\fP, \fB\-\-verbose\fP
jpayne@68 1249 bewirkt ausführliche Ausgaben. Wenn die Standardfehlerausgabe mit einem
jpayne@68 1250 Terminal verbunden ist, zeigt \fBxz\fP den Fortschritt an. Durch zweimalige
jpayne@68 1251 Angabe von \fB\-\-verbose\fP wird die Ausgabe noch ausführlicher.
jpayne@68 1252 .IP ""
jpayne@68 1253 Der Fortschrittsanzeiger stellt die folgenden Informationen dar:
jpayne@68 1254 .RS
jpayne@68 1255 .IP \(bu 3
jpayne@68 1256 Der Prozentsatz des Fortschritts wird angezeigt, wenn die Größe der
jpayne@68 1257 Eingabedatei bekannt ist. Das bedeutet, dass der Prozentsatz in
jpayne@68 1258 Weiterleitungen (Pipes) nicht angezeigt werden kann.
jpayne@68 1259 .IP \(bu 3
jpayne@68 1260 Menge der erzeugten komprimierten Daten (bei der Kompression) oder der
jpayne@68 1261 verarbeiteten Daten (bei der Dekompression).
jpayne@68 1262 .IP \(bu 3
jpayne@68 1263 Menge der verarbeiteten unkomprimierten Daten (bei der Kompression) oder der
jpayne@68 1264 erzeugten Daten (bei der Dekompression).
jpayne@68 1265 .IP \(bu 3
jpayne@68 1266 Kompressionsverhältnis, das mittels Dividieren der Menge der bisher
jpayne@68 1267 komprimierten Daten durch die Menge der bisher verarbeiteten unkomprimierten
jpayne@68 1268 Daten ermittelt wird.
jpayne@68 1269 .IP \(bu 3
jpayne@68 1270 Kompressions\- oder Dekompressionsgeschwindigkeit. Diese wird anhand der
jpayne@68 1271 Menge der unkomprimierten verarbeiteten Daten (bei der Kompression) oder der
jpayne@68 1272 Menge der erzeugten Daten (bei der Dekompression) pro Sekunde gemessen. Die
jpayne@68 1273 Anzeige startet einige Sekunden nachdem \fBxz\fP mit der Verarbeitung der Datei
jpayne@68 1274 begonnen hat.
jpayne@68 1275 .IP \(bu 3
jpayne@68 1276 Die vergangene Zeit im Format M:SS oder H:MM:SS.
jpayne@68 1277 .IP \(bu 3
jpayne@68 1278 Die geschätzte verbleibende Zeit wird nur angezeigt, wenn die Größe der
jpayne@68 1279 Eingabedatei bekannt ist und bereits einige Sekunden vergangen sind, nachdem
jpayne@68 1280 \fBxz\fP mit der Verarbeitung der Datei begonnen hat. Die Zeit wird in einem
jpayne@68 1281 weniger präzisen Format ohne Doppelpunkte angezeigt, zum Beispiel 2 min 30
jpayne@68 1282 s.
jpayne@68 1283 .RE
jpayne@68 1284 .IP ""
jpayne@68 1285 Wenn die Standardfehlerausgabe kein Terminal ist, schreibt \fBxz\fP mit
jpayne@68 1286 \fB\-\-verbose\fP nach dem Komprimieren oder Dekomprimieren der Datei in einer
jpayne@68 1287 einzelnen Zeile den Dateinamen, die komprimierte Größe, die unkomprimierte
jpayne@68 1288 Größe, das Kompressionsverhältnis und eventuell auch die Geschwindigkeit und
jpayne@68 1289 die vergangene Zeit in die Standardfehlerausgabe. Die Geschwindigkeit und
jpayne@68 1290 die vergangene Zeit werden nur angezeigt, wenn der Vorgang mindestens ein
jpayne@68 1291 paar Sekunden gedauert hat. Wurde der Vorgang nicht beendet, zum Beispiel
jpayne@68 1292 weil ihn der Benutzer abgebrochen hat, wird außerdem der Prozentsatz des
jpayne@68 1293 erreichten Verarbeitungsfortschritts aufgenommen, sofern die Größe der
jpayne@68 1294 Eingabedatei bekannt ist.
jpayne@68 1295 .TP
jpayne@68 1296 \fB\-Q\fP, \fB\-\-no\-warn\fP
jpayne@68 1297 setzt den Exit\-Status nicht auf 2, selbst wenn eine Bedingung erfüllt ist,
jpayne@68 1298 die eine Warnung gerechtfertigt hätte. Diese Option wirkt sich nicht auf die
jpayne@68 1299 Ausführlichkeitsstufe aus, daher müssen sowohl \fB\-\-quiet\fP als auch
jpayne@68 1300 \fB\-\-no\-warn\fP angegeben werden, um einerseits keine Warnungen anzuzeigen und
jpayne@68 1301 andererseits auch den Exit\-Status nicht zu ändern.
jpayne@68 1302 .TP
jpayne@68 1303 \fB\-\-robot\fP
jpayne@68 1304 gibt Meldungen in einem maschinenlesbaren Format aus. Dadurch soll das
jpayne@68 1305 Schreiben von Frontends erleichtert werden, die \fBxz\fP anstelle von Liblzma
jpayne@68 1306 verwenden wollen, was in verschiedenen Skripten der Fall sein kann. Die
jpayne@68 1307 Ausgabe mit dieser aktivierten Option sollte über mehrere
jpayne@68 1308 \fBxz\fP\-Veröffentlichungen stabil sein. Details hierzu finden Sie im Abschnitt
jpayne@68 1309 \fBROBOTER\-MODUS\fP.
jpayne@68 1310 .TP
jpayne@68 1311 \fB\-\-info\-memory\fP
jpayne@68 1312 zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM)
jpayne@68 1313 und wie viele Prozessor\-Threads das System nach Annahme von \fBxz\fP hat, sowie
jpayne@68 1314 die Speicherbedarfsbegrenzung für Kompression und Dekompression, und beendet
jpayne@68 1315 das Programm erfolgreich.
jpayne@68 1316 .TP
jpayne@68 1317 \fB\-h\fP, \fB\-\-help\fP
jpayne@68 1318 zeigt eine Hilfemeldung mit den am häufigsten genutzten Optionen an und
jpayne@68 1319 beendet das Programm erfolgreich.
jpayne@68 1320 .TP
jpayne@68 1321 \fB\-H\fP, \fB\-\-long\-help\fP
jpayne@68 1322 zeigt eine Hilfemeldung an, die alle Funktionsmerkmale von \fBxz\fP beschreibt
jpayne@68 1323 und beendet das Programm erfolgreich.
jpayne@68 1324 .TP
jpayne@68 1325 \fB\-V\fP, \fB\-\-version\fP
jpayne@68 1326 zeigt die Versionsnummer von \fBxz\fP und Liblzma in einem menschenlesbaren
jpayne@68 1327 Format an. Um eine maschinell auswertbare Ausgabe zu erhalten, geben Sie
jpayne@68 1328 \fB\-\-robot\fP vor \fB\-\-version\fP an.
jpayne@68 1329 .
jpayne@68 1330 .SH ROBOTER\-MODUS
jpayne@68 1331 Der Roboter\-Modus wird mit der Option \fB\-\-robot\fP aktiviert. Er bewirkt, dass
jpayne@68 1332 die Ausgabe von \fBxz\fP leichter von anderen Programmen ausgewertet werden
jpayne@68 1333 kann. Gegenwärtig wird \fB\-\-robot\fP nur zusammen mit \fB\-\-list\fP,
jpayne@68 1334 \fB\-\-filters\-help\fP, \fB\-\-info\-memory\fP und \fB\-\-version\fP unterstützt. In der
jpayne@68 1335 Zukunft wird dieser Modus auch für Kompression und Dekompression
jpayne@68 1336 unterstützt.
jpayne@68 1337 .
jpayne@68 1338 .SS Listenmodus
jpayne@68 1339 \fBxz \-\-robot \-\-list\fP verwendet eine durch Tabulatoren getrennte Ausgabe. In
jpayne@68 1340 der ersten Spalte jeder Zeile bezeichnet eine Zeichenkette den Typ der
jpayne@68 1341 Information, die in dieser Zeile enthalten ist:
jpayne@68 1342 .TP
jpayne@68 1343 \fBname\fP
jpayne@68 1344 Dies ist stets die erste Zeile, wenn eine Datei aufgelistet wird. Die zweite
jpayne@68 1345 Spalte in der Zeile enthält den Dateinamen.
jpayne@68 1346 .TP
jpayne@68 1347 \fBfile\fP
jpayne@68 1348 Diese Zeile enthält allgemeine Informationen zur \fB.xz\fP\-Datei. Diese Zeile
jpayne@68 1349 wird stets nach der \fBname\fP\-Zeile ausgegeben.
jpayne@68 1350 .TP
jpayne@68 1351 \fBstream\fP
jpayne@68 1352 Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP angegeben wurde. Es
jpayne@68 1353 gibt genau so viele \fBstream\fP\-Zeilen, wie Datenströme in der \fB.xz\fP\-Datei
jpayne@68 1354 enthalten sind.
jpayne@68 1355 .TP
jpayne@68 1356 \fBblock\fP
jpayne@68 1357 Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP angegeben wurde. Es
jpayne@68 1358 gibt so viele \fBblock\fP\-Zeilen, wie Blöcke in der \fB.xz\fP\-Datei. Die
jpayne@68 1359 \fBblock\fP\-Zeilen werden nach allen \fBstream\fP\-Zeilen angezeigt; verschiedene
jpayne@68 1360 Zeilentypen werden nicht verschachtelt.
jpayne@68 1361 .TP
jpayne@68 1362 \fBsummary\fP
jpayne@68 1363 Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP zwei Mal angegeben
jpayne@68 1364 wurde. Diese Zeile wird nach allen \fBblock\fP\-Zeilen ausgegeben. Wie die
jpayne@68 1365 \fBfile\fP\-Zeile enthält die \fBsummary\fP\-Zeile allgemeine Informationen zur
jpayne@68 1366 \&\fB.xz\fP\-Datei.
jpayne@68 1367 .TP
jpayne@68 1368 \fBtotals\fP
jpayne@68 1369 Diese Zeile ist immer die letzte der Listenausgabe. Sie zeigt die
jpayne@68 1370 Gesamtanzahlen und \-größen an.
jpayne@68 1371 .PP
jpayne@68 1372 Die Spalten der \fBfile\fP\-Zeilen:
jpayne@68 1373 .PD 0
jpayne@68 1374 .RS
jpayne@68 1375 .IP 2. 4
jpayne@68 1376 Anzahl der Datenströme in der Datei
jpayne@68 1377 .IP 3. 4
jpayne@68 1378 Gesamtanzahl der Blöcke in den Datenströmen
jpayne@68 1379 .IP 4. 4
jpayne@68 1380 Komprimierte Größe der Datei
jpayne@68 1381 .IP 5. 4
jpayne@68 1382 Unkomprimierte Größe der Datei
jpayne@68 1383 .IP 6. 4
jpayne@68 1384 Das Kompressionsverhältnis, zum Beispiel \fB0.123\fP. Wenn das Verhältnis über
jpayne@68 1385 9.999 liegt, werden drei Minuszeichen (\fB\-\-\-\fP) anstelle des
jpayne@68 1386 Kompressionsverhältnisses angezeigt.
jpayne@68 1387 .IP 7. 4
jpayne@68 1388 Durch Kommata getrennte Liste der Namen der Integritätsprüfungen. Für die
jpayne@68 1389 bekannten Überprüfungstypen werden folgende Zeichenketten verwendet:
jpayne@68 1390 \fBNone\fP, \fBCRC32\fP, \fBCRC64\fP und \fBSHA\-256\fP. \fBUnbek.\fP\fIN\fP wird verwendet,
jpayne@68 1391 wobei \fIN\fP die Kennung der Überprüfung als Dezimalzahl angibt (ein\- oder
jpayne@68 1392 zweistellig).
jpayne@68 1393 .IP 8. 4
jpayne@68 1394 Gesamtgröße der Datenstromauffüllung in der Datei
jpayne@68 1395 .RE
jpayne@68 1396 .PD
jpayne@68 1397 .PP
jpayne@68 1398 Die Spalten der \fBstream\fP\-Zeilen:
jpayne@68 1399 .PD 0
jpayne@68 1400 .RS
jpayne@68 1401 .IP 2. 4
jpayne@68 1402 Datenstromnummer (der erste Datenstrom ist 1)
jpayne@68 1403 .IP 3. 4
jpayne@68 1404 Anzahl der Blöcke im Datenstrom
jpayne@68 1405 .IP 4. 4
jpayne@68 1406 Komprimierte Startposition
jpayne@68 1407 .IP 5. 4
jpayne@68 1408 Unkomprimierte Startposition
jpayne@68 1409 .IP 6. 4
jpayne@68 1410 Komprimierte Größe (schließt die Datenstromauffüllung nicht mit ein)
jpayne@68 1411 .IP 7. 4
jpayne@68 1412 Unkomprimierte Größe
jpayne@68 1413 .IP 8. 4
jpayne@68 1414 Kompressionsverhältnis
jpayne@68 1415 .IP 9. 4
jpayne@68 1416 Name der Integritätsprüfung
jpayne@68 1417 .IP 10. 4
jpayne@68 1418 Größe der Datenstromauffüllung
jpayne@68 1419 .RE
jpayne@68 1420 .PD
jpayne@68 1421 .PP
jpayne@68 1422 Die Spalten der \fBblock\fP\-Zeilen:
jpayne@68 1423 .PD 0
jpayne@68 1424 .RS
jpayne@68 1425 .IP 2. 4
jpayne@68 1426 Anzahl der in diesem Block enthaltenen Datenströme
jpayne@68 1427 .IP 3. 4
jpayne@68 1428 Blocknummer relativ zum Anfang des Datenstroms (der erste Block ist 1)
jpayne@68 1429 .IP 4. 4
jpayne@68 1430 Blocknummer relativ zum Anfang der Datei
jpayne@68 1431 .IP 5. 4
jpayne@68 1432 Komprimierter Startversatz relativ zum Beginn der Datei
jpayne@68 1433 .IP 6. 4
jpayne@68 1434 Unkomprimierter Startversatz relativ zum Beginn der Datei
jpayne@68 1435 .IP 7. 4
jpayne@68 1436 Komprimierte Gesamtgröße des Blocks (einschließlich Header)
jpayne@68 1437 .IP 8. 4
jpayne@68 1438 Unkomprimierte Größe
jpayne@68 1439 .IP 9. 4
jpayne@68 1440 Kompressionsverhältnis
jpayne@68 1441 .IP 10. 4
jpayne@68 1442 Name der Integritätsprüfung
jpayne@68 1443 .RE
jpayne@68 1444 .PD
jpayne@68 1445 .PP
jpayne@68 1446 Wenn \fB\-\-verbose\fP zwei Mal angegeben wurde, werden zusätzliche Spalten in
jpayne@68 1447 die \fBblock\fP\-Zeilen eingefügt. Diese werden mit einem einfachen \fB\-\-verbose\fP
jpayne@68 1448 nicht angezeigt, da das Ermitteln dieser Informationen viele Suchvorgänge
jpayne@68 1449 erfordert und daher recht langsam sein kann:
jpayne@68 1450 .PD 0
jpayne@68 1451 .RS
jpayne@68 1452 .IP 11. 4
jpayne@68 1453 Wert der Integritätsprüfung in hexadezimaler Notation
jpayne@68 1454 .IP 12. 4
jpayne@68 1455 Block\-Header\-Größe
jpayne@68 1456 .IP 13. 4
jpayne@68 1457 Block\-Schalter: \fBc\fP gibt an, dass die komprimierte Größe verfügbar ist, und
jpayne@68 1458 \fBu\fP gibt an, dass die unkomprimierte Größe verfügbar ist. Falls der
jpayne@68 1459 Schalter nicht gesetzt ist, wird stattdessen ein Bindestrich (\fB\-\fP)
jpayne@68 1460 angezeigt, um die Länge der Zeichenkette beizubehalten. In Zukunft könnten
jpayne@68 1461 neue Schalter am Ende der Zeichenkette hinzugefügt werden.
jpayne@68 1462 .IP 14. 4
jpayne@68 1463 Größe der tatsächlichen komprimierten Daten im Block. Ausgeschlossen sind
jpayne@68 1464 hierbei die Block\-Header, die Blockauffüllung und die Prüffelder.
jpayne@68 1465 .IP 15. 4
jpayne@68 1466 Größe des Speichers (in Byte), der zum Dekomprimieren dieses Blocks mit
jpayne@68 1467 dieser \fBxz\fP\-Version benötigt wird.
jpayne@68 1468 .IP 16. 4
jpayne@68 1469 Filterkette. Beachten Sie, dass die meisten der bei der Kompression
jpayne@68 1470 verwendeten Optionen nicht bekannt sein können, da in den \fB.xz\fP\-Headern nur
jpayne@68 1471 die für die Dekompression erforderlichen Optionen gespeichert sind.
jpayne@68 1472 .RE
jpayne@68 1473 .PD
jpayne@68 1474 .PP
jpayne@68 1475 Die Spalten der \fBsummary\fP\-Zeilen:
jpayne@68 1476 .PD 0
jpayne@68 1477 .RS
jpayne@68 1478 .IP 2. 4
jpayne@68 1479 Größe des Speichers (in Byte), der zum Dekomprimieren dieser Datei mit
jpayne@68 1480 dieser \fBxz\fP\-Version benötigt wird.
jpayne@68 1481 .IP 3. 4
jpayne@68 1482 \fByes\fP oder \fBno\fP geben an, ob in allen Block\-Headern sowohl die
jpayne@68 1483 komprimierte als auch die unkomprimierte Größe gespeichert ist.
jpayne@68 1484 .PP
jpayne@68 1485 \fISeit\fP \fBxz\fP \fI5.1.2alpha:\fP
jpayne@68 1486 .IP 4. 4
jpayne@68 1487 Minimale \fBxz\fP\-Version, die zur Dekompression der Datei erforderlich ist
jpayne@68 1488 .RE
jpayne@68 1489 .PD
jpayne@68 1490 .PP
jpayne@68 1491 Die Spalten der \fBtotals\fP\-Zeile:
jpayne@68 1492 .PD 0
jpayne@68 1493 .RS
jpayne@68 1494 .IP 2. 4
jpayne@68 1495 Anzahl der Datenströme
jpayne@68 1496 .IP 3. 4
jpayne@68 1497 Anzahl der Blöcke
jpayne@68 1498 .IP 4. 4
jpayne@68 1499 Komprimierte Größe
jpayne@68 1500 .IP 5. 4
jpayne@68 1501 Unkomprimierte Größe
jpayne@68 1502 .IP 6. 4
jpayne@68 1503 Durchschnittliches Kompressionsverhältnis
jpayne@68 1504 .IP 7. 4
jpayne@68 1505 Durch Kommata getrennte Liste der Namen der Integritätsprüfungen, die in den
jpayne@68 1506 Dateien präsent waren.
jpayne@68 1507 .IP 8. 4
jpayne@68 1508 Größe der Datenstromauffüllung
jpayne@68 1509 .IP 9. 4
jpayne@68 1510 Anzahl der Dateien. Dies dient dazu, die Reihenfolge der vorigen Spalten an
jpayne@68 1511 die in den \fBfile\fP\-Zeilen anzugleichen.
jpayne@68 1512 .PD
jpayne@68 1513 .RE
jpayne@68 1514 .PP
jpayne@68 1515 Wenn \fB\-\-verbose\fP zwei Mal angegeben wird, werden zusätzliche Spalten in die
jpayne@68 1516 \fBtotals\fP\-Zeile eingefügt:
jpayne@68 1517 .PD 0
jpayne@68 1518 .RS
jpayne@68 1519 .IP 10. 4
jpayne@68 1520 Maximale Größe des Speichers (in Byte), der zum Dekomprimieren der Dateien
jpayne@68 1521 mit dieser \fBxz\fP\-Version benötigt wird.
jpayne@68 1522 .IP 11. 4
jpayne@68 1523 \fByes\fP oder \fBno\fP geben an, ob in allen Block\-Headern sowohl die
jpayne@68 1524 komprimierte als auch die unkomprimierte Größe gespeichert ist.
jpayne@68 1525 .PP
jpayne@68 1526 \fISeit\fP \fBxz\fP \fI5.1.2alpha:\fP
jpayne@68 1527 .IP 12. 4
jpayne@68 1528 Minimale \fBxz\fP\-Version, die zur Dekompression der Datei erforderlich ist
jpayne@68 1529 .RE
jpayne@68 1530 .PD
jpayne@68 1531 .PP
jpayne@68 1532 Zukünftige Versionen könnten neue Zeilentypen hinzufügen, weiterhin könnten
jpayne@68 1533 auch in den vorhandenen Zeilentypen weitere Spalten hinzugefügt werden, aber
jpayne@68 1534 die existierenden Spalten werden nicht geändert.
jpayne@68 1535 .
jpayne@68 1536 .SS Filterhilfe
jpayne@68 1537 \fBxz \-\-robot \-\-filters\-help\fP gibt die unterstützten Filter im folgenden
jpayne@68 1538 Format aus:
jpayne@68 1539 .PP
jpayne@68 1540 \fIFilter\fP\fB:\fP\fIOption\fP\fB=<\fP\fIWert\fP\fB>,\fP\fIOption\fP\fB=<\fP\fIWert\fP\fB>\fP
jpayne@68 1541
jpayne@68 1542 .TP
jpayne@68 1543 \fIFilter\fP
jpayne@68 1544 Name des Filters
jpayne@68 1545 .TP
jpayne@68 1546 \fIOption\fP
jpayne@68 1547 Name der filterspezifischen Option
jpayne@68 1548 .TP
jpayne@68 1549 \fIWert\fP
jpayne@68 1550 Der numerische \fIWert\fP erscheint als Bereich
jpayne@68 1551 \fB<\fP\fIMinimum\fP\fB\-\fP\fIMaximum\fP\fB>\fP. Die Auswahl des
jpayne@68 1552 Zeichenketten\-\fIWert\fPs wird in \fB< >\fP eingeschlossen und durch \fB|\fP
jpayne@68 1553 getrennt.
jpayne@68 1554 .PP
jpayne@68 1555 Jeder Filter wird in einer separaten Zeile ausgegeben.
jpayne@68 1556 .
jpayne@68 1557 .SS "Informationen zur Speicherbedarfsbegrenzung"
jpayne@68 1558 \fBxz \-\-robot \-\-info\-memory\fP gibt eine einzelne Zeile mit mehreren durch
jpayne@68 1559 Tabulatoren getrennten Spalten aus:
jpayne@68 1560 .IP 1. 4
jpayne@68 1561 Gesamter physischer Speicher (RAM) in Byte.
jpayne@68 1562 .IP 2. 4
jpayne@68 1563 Speicherbedarfsbegrenzung für die Kompression in Byte
jpayne@68 1564 (\fB\-\-memlimit\-compress\fP). Ein spezieller Wert von \fB0\fP bezeichnet die
jpayne@68 1565 Standardeinstellung, die im Einzelthread\-Modus bedeutet, dass keine
jpayne@68 1566 Begrenzung vorhanden ist.
jpayne@68 1567 .IP 3. 4
jpayne@68 1568 Speicherbedarfsbegrenzung für die Dekompression in Byte
jpayne@68 1569 (\fB\-\-memlimit\-decompress\fP). Ein spezieller Wert von \fB0\fP bezeichnet die
jpayne@68 1570 Standardeinstellung, die im Einzelthread\-Modus bedeutet, dass keine
jpayne@68 1571 Begrenzung vorhanden ist.
jpayne@68 1572 .IP 4. 4
jpayne@68 1573 Seit \fBxz\fP 5.3.4alpha: Die Speichernutzung für Multithread\-Dekompression in
jpayne@68 1574 Byte (\fB\-\-memlimit\-mt\-decompress\fP). Dies ist niemals \fB0\fP, da ein
jpayne@68 1575 systemspezifischer Vorgabewert (gezeigt in Spalte 5) verwendet wird, falls
jpayne@68 1576 keine Grenze ausdrücklich angegeben wurde. Dies ist außerdem niemals größer
jpayne@68 1577 als der Wert in in Spalte 3, selbst wenn mit \fB\-\-memlimit\-mt\-decompress\fP ein
jpayne@68 1578 größerer Wert angegeben wurde.
jpayne@68 1579 .IP 5. 4
jpayne@68 1580 Seit \fBxz\fP 5.3.4alpha: Eine systemspezifisch vorgegebene Begrenzung des
jpayne@68 1581 Speicherverbrauchs, die zur Begrenzung der Anzahl der Threads beim
jpayne@68 1582 Komprimieren mit automatischer Anzahl der Threads (\fB\-\-threads=0\fP) und wenn
jpayne@68 1583 keine Speicherbedarfsbegrenzung angegeben wurde (\fB\-\-memlimit\-compress\fP)
jpayne@68 1584 verwendet wird. Dies wird auch als Standardwert für
jpayne@68 1585 \fB\-\-memlimit\-mt\-decompress\fP verwendet.
jpayne@68 1586 .IP 6. 4
jpayne@68 1587 Seit \fBxz\fP 5.3.4alpha: Anzahl der verfügbaren Prozessorthreads.
jpayne@68 1588 .PP
jpayne@68 1589 In der Zukunft könnte die Ausgabe von \fBxz \-\-robot \-\-info\-memory\fP weitere
jpayne@68 1590 Spalten enthalten, aber niemals mehr als eine einzelne Zeile.
jpayne@68 1591 .
jpayne@68 1592 .SS Version
jpayne@68 1593 \fBxz \-\-robot \-\-version\fP gibt die Versionsnummern von \fBxz\fP und Liblzma im
jpayne@68 1594 folgenden Format aus:
jpayne@68 1595 .PP
jpayne@68 1596 \fBXZ_VERSION=\fP\fIXYYYZZZS\fP
jpayne@68 1597 .br
jpayne@68 1598 \fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
jpayne@68 1599 .TP
jpayne@68 1600 \fIX\fP
jpayne@68 1601 Hauptversion.
jpayne@68 1602 .TP
jpayne@68 1603 \fIYYY\fP
jpayne@68 1604 Unterversion. Gerade Zahlen bezeichnen eine stabile Version. Ungerade Zahlen
jpayne@68 1605 bezeichnen Alpha\- oder Betaversionen.
jpayne@68 1606 .TP
jpayne@68 1607 \fIZZZ\fP
jpayne@68 1608 Patch\-Stufe für stabile Veröffentlichungen oder einfach nur ein Zähler für
jpayne@68 1609 Entwicklungsversionen.
jpayne@68 1610 .TP
jpayne@68 1611 \fIS\fP
jpayne@68 1612 Stabilität. 0 ist Alpha, 1 ist Beta und 2 ist stabil. \fIS\fP sollte immer 2
jpayne@68 1613 sein, wenn \fIYYY\fP eine gerade Zahl ist.
jpayne@68 1614 .PP
jpayne@68 1615 \fIXYYYZZZS\fP sind in beiden Zeilen gleich, sofern \fBxz\fP und Liblzma aus der
jpayne@68 1616 gleichen Veröffentlichung der XZ\-Utils stammen.
jpayne@68 1617 .PP
jpayne@68 1618 Beispiele: 4.999.9beta ist \fB49990091\fP und 5.0.0 is \fB50000002\fP.
jpayne@68 1619 .
jpayne@68 1620 .SH EXIT\-STATUS
jpayne@68 1621 .TP
jpayne@68 1622 \fB0\fP
jpayne@68 1623 Alles ist in Ordnung.
jpayne@68 1624 .TP
jpayne@68 1625 \fB1\fP
jpayne@68 1626 Ein Fehler ist aufgetreten.
jpayne@68 1627 .TP
jpayne@68 1628 \fB2\fP
jpayne@68 1629 Es ist etwas passiert, das eine Warnung rechtfertigt, aber es sind keine
jpayne@68 1630 tatsächlichen Fehler aufgetreten.
jpayne@68 1631 .PP
jpayne@68 1632 In die Standardausgabe geschriebene Hinweise (keine Warnungen oder Fehler),
jpayne@68 1633 welche den Exit\-Status nicht beeinflussen.
jpayne@68 1634 .
jpayne@68 1635 .SH UMGEBUNGSVARIABLEN
jpayne@68 1636 \fBxz\fP wertet eine durch Leerzeichen getrennte Liste von Optionen in den
jpayne@68 1637 Umgebungsvariablen \fBXZ_DEFAULTS\fP und \fBXZ_OPT\fP aus (in dieser Reihenfolge),
jpayne@68 1638 bevor die Optionen aus der Befehlszeile ausgewertet werden. Beachten Sie,
jpayne@68 1639 dass beim Auswerten der Umgebungsvariablen nur Optionen berücksichtigt
jpayne@68 1640 werden; alle Einträge, die keine Optionen sind, werden stillschweigend
jpayne@68 1641 ignoriert. Die Auswertung erfolgt mit \fBgetopt_long\fP(3), welches auch für
jpayne@68 1642 die Befehlszeilenargumente verwendet wird.
jpayne@68 1643 .TP
jpayne@68 1644 \fBXZ_DEFAULTS\fP
jpayne@68 1645 Benutzerspezifische oder systemweite Standardoptionen. Typischerweise werden
jpayne@68 1646 diese in einem Shell\-Initialisierungsskript gesetzt, um die
jpayne@68 1647 Speicherbedarfsbegrenzung von \fBxz\fP standardmäßig zu aktivieren. Außer bei
jpayne@68 1648 Shell\-Initialisierungsskripten und in ähnlichen Spezialfällen darf die
jpayne@68 1649 Variable \fBXZ_DEFAULTS\fP in Skripten niemals gesetzt oder außer Kraft gesetzt
jpayne@68 1650 werden.
jpayne@68 1651 .TP
jpayne@68 1652 \fBXZ_OPT\fP
jpayne@68 1653 Dies dient der Übergabe von Optionen an \fBxz\fP, wenn es nicht möglich ist,
jpayne@68 1654 die Optionen direkt in der Befehlszeile von \fBxz\fP zu übergeben. Dies ist der
jpayne@68 1655 Fall, wenn \fBxz\fP von einem Skript oder Dienstprogramm ausgeführt wird, zum
jpayne@68 1656 Beispiel GNU \fBtar\fP(1):
jpayne@68 1657 .RS
jpayne@68 1658 .RS
jpayne@68 1659 .PP
jpayne@68 1660 .nf
jpayne@68 1661 \f(CRXZ_OPT=\-2v tar caf foo.tar.xz foo\fR
jpayne@68 1662 .fi
jpayne@68 1663 .RE
jpayne@68 1664 .RE
jpayne@68 1665 .IP ""
jpayne@68 1666 Skripte können \fBXZ_OPT\fP zum Beispiel zum Setzen skriptspezifischer
jpayne@68 1667 Standard\-Kompressionsoptionen verwenden. Es ist weiterhin empfehlenswert,
jpayne@68 1668 Benutzern die Außerkraftsetzung von \fBXZ_OPT\fP zu erlauben, falls dies
jpayne@68 1669 angemessen ist. Zum Beispiel könnte in \fBsh\fP(1)\-Skripten Folgendes stehen:
jpayne@68 1670 .RS
jpayne@68 1671 .RS
jpayne@68 1672 .PP
jpayne@68 1673 .nf
jpayne@68 1674 \f(CRXZ_OPT=${XZ_OPT\-"\-7e"}
jpayne@68 1675 export XZ_OPT\fR
jpayne@68 1676 .fi
jpayne@68 1677 .RE
jpayne@68 1678 .RE
jpayne@68 1679 .
jpayne@68 1680 .SH "KOMPATIBILITÄT ZU DEN LZMA\-UTILS"
jpayne@68 1681 Die Befehlszeilensyntax von \fBxz\fP ist praktisch eine Obermenge der von
jpayne@68 1682 \fBlzma\fP, \fBunlzma\fP und \fBlzcat\fP in den LZMA\-Utils der Versionen 4.32.x. In
jpayne@68 1683 den meisten Fällen sollte es möglich sein, die LZMA\-Utils durch die XZ\-Utils
jpayne@68 1684 zu ersetzen, ohne vorhandene Skripte ändern zu müssen. Dennoch gibt es
jpayne@68 1685 einige Inkompatibilitäten, die manchmal Probleme verursachen können.
jpayne@68 1686 .
jpayne@68 1687 .SS "Voreinstellungsstufen zur Kompression"
jpayne@68 1688 Die Nummerierung der Voreinstellungsstufen der Kompression ist in \fBxz\fP und
jpayne@68 1689 den LZMA\-Utils unterschiedlich. Der wichtigste Unterschied ist die Zuweisung
jpayne@68 1690 der Wörterbuchgrößen zu den verschiedenen Voreinstellungsstufen. Die
jpayne@68 1691 Wörterbuchgröße ist etwa gleich dem Speicherbedarf bei der Dekompression.
jpayne@68 1692 .RS
jpayne@68 1693 .PP
jpayne@68 1694 .TS
jpayne@68 1695 tab(;);
jpayne@68 1696 c c c
jpayne@68 1697 c n n.
jpayne@68 1698 Stufe;xz;LZMA\-Utils
jpayne@68 1699 \-0;256 KiB;nicht verfügbar
jpayne@68 1700 \-1;1 MiB;64 KiB
jpayne@68 1701 \-2;2 MiB;1 MiB
jpayne@68 1702 \-3;4 MiB;512 KiB
jpayne@68 1703 \-4;4 MiB;1 MiB
jpayne@68 1704 \-5;8 MiB;2 MiB
jpayne@68 1705 \-6;8 MiB;4 MiB
jpayne@68 1706 \-7;16 MiB;8 MiB
jpayne@68 1707 \-8;32 MiB;16 MiB
jpayne@68 1708 \-9;64 MiB;32 MiB
jpayne@68 1709 .TE
jpayne@68 1710 .RE
jpayne@68 1711 .PP
jpayne@68 1712 Die Unterschiede in der Wörterbuchgröße beeinflussen auch den Speicherbedarf
jpayne@68 1713 bei der Kompression, aber es gibt noch einige andere Unterschiede zwischen
jpayne@68 1714 den LZMA\-Utils und den XZ\-Utils, die die Kluft noch vergrößern:
jpayne@68 1715 .RS
jpayne@68 1716 .PP
jpayne@68 1717 .TS
jpayne@68 1718 tab(;);
jpayne@68 1719 c c c
jpayne@68 1720 c n n.
jpayne@68 1721 Stufe;xz;LZMA\-Utils 4.32.x
jpayne@68 1722 \-0;3 MiB;nicht verfügbar
jpayne@68 1723 \-1;9 MiB;2 MiB
jpayne@68 1724 \-2;17 MiB;12 MiB
jpayne@68 1725 \-3;32 MiB;12 MiB
jpayne@68 1726 \-4;48 MiB;16 MiB
jpayne@68 1727 \-5;94 MiB;26 MiB
jpayne@68 1728 \-6;94 MiB;45 MiB
jpayne@68 1729 \-7;186 MiB;83 MiB
jpayne@68 1730 \-8;370 MiB;159 MiB
jpayne@68 1731 \-9;674 MiB;311 MiB
jpayne@68 1732 .TE
jpayne@68 1733 .RE
jpayne@68 1734 .PP
jpayne@68 1735 Die standardmäßige Voreinstellungsstufe in den LZMA\-Utils ist \fB\-7\fP, während
jpayne@68 1736 diese in den XZ\-Utils \fB\-6\fP ist, daher verwenden beide standardmäßig ein 8
jpayne@68 1737 MiB großes Wörterbuch.
jpayne@68 1738 .
jpayne@68 1739 .SS "Vor\- und Nachteile von .lzma\-Dateien als Datenströme"
jpayne@68 1740 Die unkomprimierte Größe der Datei kann in den \fB.lzma\fP\-Headern gespeichert
jpayne@68 1741 werden. Die LZMA\-Utils tun das beim Komprimieren gewöhnlicher Dateien. Als
jpayne@68 1742 Alternative kann die unkomprimierte Größe als unbekannt markiert und eine
jpayne@68 1743 Nutzdatenende\-Markierung (end\-of\-payload) verwendet werden, um anzugeben, wo
jpayne@68 1744 der Dekompressor stoppen soll. Die LZMA\-Utils verwenden diese Methode, wenn
jpayne@68 1745 die unkomprimierte Größe unbekannt ist, was beispielsweise in Pipes
jpayne@68 1746 (Befehlsverkettungen) der Fall ist.
jpayne@68 1747 .PP
jpayne@68 1748 \fBxz\fP unterstützt die Dekompression von \fB.lzma\fP\-Dateien mit oder ohne
jpayne@68 1749 Nutzdatenende\-Markierung, aber alle von \fBxz\fP erstellten \fB.lzma\fP\-Dateien
jpayne@68 1750 verwenden diesen Nutzdatenende\-Markierung, wobei die unkomprimierte Größe in
jpayne@68 1751 den \fB.lzma\fP\-Headern als unbekannt markiert wird. Das könnte in einigen
jpayne@68 1752 unüblichen Situationen ein Problem sein. Zum Beispiel könnte ein
jpayne@68 1753 \&\fB.lzma\fP\-Dekompressor in einem Gerät mit eingebettetem System nur mit
jpayne@68 1754 Dateien funktionieren, deren unkomprimierte Größe bekannt ist. Falls Sie auf
jpayne@68 1755 dieses Problem stoßen, müssen Sie die LZMA\-Utils oder das LZMA\-SDK
jpayne@68 1756 verwenden, um \fB.lzma\fP\-Dateien mit bekannter unkomprimierter Größe zu
jpayne@68 1757 erzeugen.
jpayne@68 1758 .
jpayne@68 1759 .SS "Nicht unterstützte .lzma\-Dateien"
jpayne@68 1760 Das \fB.lzma\fP\-Format erlaubt \fIlc\fP\-Werte bis zu 8 und \fIlp\fP\-Werte bis zu
jpayne@68 1761 4. Die LZMA\-Utils können Dateien mit beliebigem \fIlc\fP und \fIlp\fP
jpayne@68 1762 dekomprimieren, aber erzeugen immer Dateien mit \fBlc=3\fP und \fBlp=0\fP. Das
jpayne@68 1763 Erzeugen von Dateien mit anderem \fIlc\fP und \fIlp\fP ist mit \fBxz\fP und mit dem
jpayne@68 1764 LZMA\-SDK möglich.
jpayne@68 1765 .PP
jpayne@68 1766 Die Implementation des LZMA\-Filters in liblzma setzt voraus, dass die Summe
jpayne@68 1767 von \fIlc\fP und \fIlp\fP nicht größer als 4 ist. Daher können \fB.lzma\fP\-Dateien,
jpayne@68 1768 welche diese Begrenzung überschreiten, mit \fBxz\fP nicht dekomprimiert werden.
jpayne@68 1769 .PP
jpayne@68 1770 Die LZMA\-Utils erzeugen nur \fB.lzma\fP\-Dateien mit einer Wörterbuchgröße von
jpayne@68 1771 2^\fIn\fP (einer Zweierpotenz), aber akzeptieren Dateien mit einer beliebigen
jpayne@68 1772 Wörterbuchgröße. Liblzma akzeptiert nur \fB.lzma\fP\-Dateien mit einer
jpayne@68 1773 Wörterbuchgröße von 2^\fIn\fP oder 2^\fIn\fP + 2^(\fIn\fP\-1). Dies dient zum
jpayne@68 1774 Verringern von Fehlalarmen beim Erkennen von \fB.lzma\fP\-Dateien.
jpayne@68 1775 .PP
jpayne@68 1776 Diese Einschränkungen sollten in der Praxis kein Problem sein, da praktisch
jpayne@68 1777 alle \fB.lzma\fP\-Dateien mit Einstellungen komprimiert wurden, die Liblzma
jpayne@68 1778 akzeptieren wird.
jpayne@68 1779 .
jpayne@68 1780 .SS "Angehängter Datenmüll"
jpayne@68 1781 Bei der Dekompression ignorieren die LZMA\-Utils stillschweigend alles nach
jpayne@68 1782 dem ersten \fB.lzma\fP\-Datenstrom. In den meisten Situationen ist das ein
jpayne@68 1783 Fehler. Das bedeutet auch, dass die LZMA\-Utils die Dekompression verketteter
jpayne@68 1784 \&\fB.lzma\fP\-Dateien nicht unterstützen.
jpayne@68 1785 .PP
jpayne@68 1786 Wenn nach dem ersten \fB.lzma\fP\-Datenstrom Daten verbleiben, erachtet \fBxz\fP
jpayne@68 1787 die Datei als beschädigt, es sei denn, die Option \fB\-\-single\-stream\fP wurde
jpayne@68 1788 verwendet. Dies könnte die Ausführung von Skripten beeinflussen, die davon
jpayne@68 1789 ausgehen, dass angehängter Datenmüll ignoriert wird.
jpayne@68 1790 .
jpayne@68 1791 .SH ANMERKUNGEN
jpayne@68 1792 .
jpayne@68 1793 .SS "Die komprimierte Ausgabe kann variieren"
jpayne@68 1794 Die exakte komprimierte Ausgabe, die aus der gleichen unkomprimierten
jpayne@68 1795 Eingabedatei erzeugt wird, kann zwischen den Versionen der XZ\-Utils
jpayne@68 1796 unterschiedlich sein, selbst wenn die Kompressionsoptionen identisch
jpayne@68 1797 sind. Das kommt daher, weil der Kodierer verbessert worden sein könnte
jpayne@68 1798 (hinsichtlich schnellerer oder besserer Kompression), ohne das Dateiformat
jpayne@68 1799 zu beeinflussen. Die Ausgabe kann sogar zwischen verschiedenen Programmen
jpayne@68 1800 der gleichen Version der XZ\-Utils variieren, wenn bei der Erstellung des
jpayne@68 1801 Binärprogramms unterschiedliche Optionen verwendet wurden.
jpayne@68 1802 .PP
jpayne@68 1803 Sobald \fB\-\-rsyncable\fP implementiert wurde, bedeutet das, dass die sich
jpayne@68 1804 ergebenden Dateien nicht notwendigerweise mit Rsync abgeglichen werden
jpayne@68 1805 können, außer wenn die alte und neue Datei mit der gleichen \fBxz\fP\-Version
jpayne@68 1806 erzeugt wurden. Das Problem kann beseitigt werden, wenn ein Teil der
jpayne@68 1807 Encoder\-Implementierung eingefroren wird, um die mit Rsync abgleichbare
jpayne@68 1808 Ausgabe über \fBxz\fP\-Versionsgrenzen hinweg stabil zu halten.
jpayne@68 1809 .
jpayne@68 1810 .SS "Eingebettete .xz\-Dekompressoren"
jpayne@68 1811 Eingebettete \fB.xz\fP\-Dekompressor\-Implementierungen wie XZ Embedded
jpayne@68 1812 unterstützen nicht unbedingt Dateien, die mit anderen Integritätsprüfungen
jpayne@68 1813 (\fIPrüfung\fP\-Typen) als \fBnone\fP und \fBcrc32\fP erzeugt wurden. Da
jpayne@68 1814 \fB\-\-check=crc64\fP die Voreinstellung ist, müssen Sie \fB\-\-check=none\fP oder
jpayne@68 1815 \fB\-\-check=crc32\fP verwenden, wenn Sie Dateien für eingebettete Systeme
jpayne@68 1816 erstellen.
jpayne@68 1817 .PP
jpayne@68 1818 Außerhalb eingebetteter Systeme unterstützen die Dekompressoren des
jpayne@68 1819 \&\fB.xz\fP\-Formats alle \fIPrüfung\fP\-Typen oder sind mindestens in der Lage, die
jpayne@68 1820 Datei zu dekomprimieren, ohne deren Integrität zu prüfen, wenn die bestimmte
jpayne@68 1821 \fIPrüfung\fP nicht verfügbar ist.
jpayne@68 1822 .PP
jpayne@68 1823 XZ Embedded unterstützt BCJ\-Filter, aber nur mit dem vorgegebenen
jpayne@68 1824 Startversatz.
jpayne@68 1825 .
jpayne@68 1826 .SH BEISPIELE
jpayne@68 1827 .
jpayne@68 1828 .SS Grundlagen
jpayne@68 1829 Komprimiert die Datei \fIfoo\fP mit der Standard\-Kompressionsstufe (\fB\-6\fP) zu
jpayne@68 1830 \fIfoo.xz\fP und entfernt \fIfoo\fP nach erfolgreicher Kompression:
jpayne@68 1831 .RS
jpayne@68 1832 .PP
jpayne@68 1833 .nf
jpayne@68 1834 \f(CRxz foo\fR
jpayne@68 1835 .fi
jpayne@68 1836 .RE
jpayne@68 1837 .PP
jpayne@68 1838 \fIbar.xz\fP in \fIbar\fP dekomprimieren und \fIbar.xz\fP selbst dann nicht löschen,
jpayne@68 1839 wenn die Dekompression erfolgreich war:
jpayne@68 1840 .RS
jpayne@68 1841 .PP
jpayne@68 1842 .nf
jpayne@68 1843 \f(CRxz \-dk bar.xz\fR
jpayne@68 1844 .fi
jpayne@68 1845 .RE
jpayne@68 1846 .PP
jpayne@68 1847 \fIbaz.tar.xz\fP mit der Voreinstellung \fB\-4e\fP (\fB\-4 \-\-extreme\fP) erzeugen, was
jpayne@68 1848 langsamer ist als die Vorgabe \fB\-6\fP, aber weniger Speicher für Kompression
jpayne@68 1849 und Dekompression benötigt (48\ MiB beziehungsweise 5\ MiB):
jpayne@68 1850 .RS
jpayne@68 1851 .PP
jpayne@68 1852 .nf
jpayne@68 1853 \f(CRtar cf \- baz | xz \-4e > baz.tar.xz\fR
jpayne@68 1854 .fi
jpayne@68 1855 .RE
jpayne@68 1856 .PP
jpayne@68 1857 Eine Mischung aus komprimierten und unkomprimierten Dateien kann mit einem
jpayne@68 1858 einzelnen Befehl dekomprimiert in die Standardausgabe geschrieben werden:
jpayne@68 1859 .RS
jpayne@68 1860 .PP
jpayne@68 1861 .nf
jpayne@68 1862 \f(CRxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fR
jpayne@68 1863 .fi
jpayne@68 1864 .RE
jpayne@68 1865 .
jpayne@68 1866 .SS "Parallele Kompression von vielen Dateien"
jpayne@68 1867 Auf GNU\- und *BSD\-Systemen können \fBfind\fP(1) und \fBxargs\fP(1) zum
jpayne@68 1868 Parallelisieren der Kompression vieler Dateien verwendet werden:
jpayne@68 1869 .RS
jpayne@68 1870 .PP
jpayne@68 1871 .nf
jpayne@68 1872 \f(CRfind . \-type f \e! \-name '*.xz' \-print0 \e
jpayne@68 1873 | xargs \-0r \-P4 \-n16 xz \-T1\fR
jpayne@68 1874 .fi
jpayne@68 1875 .RE
jpayne@68 1876 .PP
jpayne@68 1877 Die Option \fB\-P\fP von \fBxargs\fP(1) legt die Anzahl der parallelen
jpayne@68 1878 \fBxz\fP\-Prozesse fest. Der beste Wert für die Option \fB\-n\fP hängt davon ab, wie
jpayne@68 1879 viele Dateien komprimiert werden sollen. Wenn es sich nur um wenige Dateien
jpayne@68 1880 handelt, sollte der Wert wahrscheinlich 1 sein; bei Zehntausenden von
jpayne@68 1881 Dateien kann 100 oder noch mehr angemessener sein, um die Anzahl der
jpayne@68 1882 \fBxz\fP\-Prozesse zu beschränken, die \fBxargs\fP(1) schließlich erzeugen wird.
jpayne@68 1883 .PP
jpayne@68 1884 Die Option \fB\-T1\fP für \fBxz\fP dient dazu, den Einzelthread\-Modus zu erzwingen,
jpayne@68 1885 da \fBxargs\fP(1) zur Steuerung des Umfangs der Parallelisierung verwendet
jpayne@68 1886 wird.
jpayne@68 1887 .
jpayne@68 1888 .SS Roboter\-Modus
jpayne@68 1889 Berechnen, wie viel Byte nach der Kompression mehrerer Dateien insgesamt
jpayne@68 1890 eingespart wurden:
jpayne@68 1891 .RS
jpayne@68 1892 .PP
jpayne@68 1893 .nf
jpayne@68 1894 \f(CRxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fR
jpayne@68 1895 .fi
jpayne@68 1896 .RE
jpayne@68 1897 .PP
jpayne@68 1898 Ein Skript könnte abfragen wollen, ob es ein \fBxz\fP verwendet, das aktuell
jpayne@68 1899 genug ist. Das folgende \fBsh\fP(1)\-Skript prüft, ob die Versionsnummer des
jpayne@68 1900 Dienstprogramms \fBxz\fP mindestens 5.0.0 ist. Diese Methode ist zu alten
jpayne@68 1901 Beta\-Versionen kompatibel, welche die Option \fB\-\-robot\fP nicht unterstützen:
jpayne@68 1902 .RS
jpayne@68 1903 .PP
jpayne@68 1904 .nf
jpayne@68 1905 \f(CRif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" ||
jpayne@68 1906 [ "$XZ_VERSION" \-lt 50000002 ]; then
jpayne@68 1907 echo "Your xz is too old."
jpayne@68 1908 fi
jpayne@68 1909 unset XZ_VERSION LIBLZMA_VERSION\fR
jpayne@68 1910 .fi
jpayne@68 1911 .RE
jpayne@68 1912 .PP
jpayne@68 1913 Eine Speicherbedarfsbegrenzung für die Dekompression mit \fBXZ_OPT\fP setzen,
jpayne@68 1914 aber eine bereits gesetzte Begrenzung nicht erhöhen:
jpayne@68 1915 .RS
jpayne@68 1916 .PP
jpayne@68 1917 .nf
jpayne@68 1918 \f(CRNEWLIM=$((123 << 20))\ \ # 123 MiB
jpayne@68 1919 OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3)
jpayne@68 1920 if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then
jpayne@68 1921 XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM"
jpayne@68 1922 export XZ_OPT
jpayne@68 1923 fi\fR
jpayne@68 1924 .fi
jpayne@68 1925 .RE
jpayne@68 1926 .
jpayne@68 1927 .SS "Benutzerdefinierte Filterketten für die Kompression"
jpayne@68 1928 Der einfachste Anwendungsfall für benutzerdefinierte Filterketten ist die
jpayne@68 1929 Anpassung von LZMA2\-Voreinstellungsstufen. Das kann nützlich sein, weil die
jpayne@68 1930 Voreinstellungen nur einen Teil der potenziell sinnvollen Kombinationen aus
jpayne@68 1931 Kompressionseinstellungen abdecken.
jpayne@68 1932 .PP
jpayne@68 1933 Die KompCPU\-Spalten der Tabellen aus den Beschreibungen der Optionen \fB\-0\fP …
jpayne@68 1934 \fB\-9\fP und \fB\-\-extreme\fP sind beim Anpassen der LZMA2\-Voreinstellungen
jpayne@68 1935 nützlich. Diese sind die relevanten Teile aus diesen zwei Tabellen:
jpayne@68 1936 .RS
jpayne@68 1937 .PP
jpayne@68 1938 .TS
jpayne@68 1939 tab(;);
jpayne@68 1940 c c
jpayne@68 1941 n n.
jpayne@68 1942 Voreinst.;KomprCPU
jpayne@68 1943 \-0;0
jpayne@68 1944 \-1;1
jpayne@68 1945 \-2;2
jpayne@68 1946 \-3;3
jpayne@68 1947 \-4;4
jpayne@68 1948 \-5;5
jpayne@68 1949 \-6;6
jpayne@68 1950 \-5e;7
jpayne@68 1951 \-6e;8
jpayne@68 1952 .TE
jpayne@68 1953 .RE
jpayne@68 1954 .PP
jpayne@68 1955 Wenn Sie wissen, dass eine Datei für eine gute Kompression ein etwas
jpayne@68 1956 größeres Wörterbuch benötigt (zum Beispiel 32 MiB), aber Sie sie schneller
jpayne@68 1957 komprimieren wollen, als dies mit \fBxz \-8\fP geschehen würde, kann eine
jpayne@68 1958 Voreinstellung mit einem niedrigen KompCPU\-Wert (zum Beispiel 1) dahingehend
jpayne@68 1959 angepasst werden, ein größeres Wörterbuch zu verwenden:
jpayne@68 1960 .RS
jpayne@68 1961 .PP
jpayne@68 1962 .nf
jpayne@68 1963 \f(CRxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fR
jpayne@68 1964 .fi
jpayne@68 1965 .RE
jpayne@68 1966 .PP
jpayne@68 1967 Mit bestimmten Dateien kann der obige Befehl schneller sein als \fBxz \-6\fP,
jpayne@68 1968 wobei die Kompression deutlich besser wird. Dennoch muss betont werden, dass
jpayne@68 1969 nur wenige Dateien von einem größeren Wörterbuch profitieren, wenn der
jpayne@68 1970 KompCPU\-Wert niedrig bleibt. Der offensichtlichste Fall, in dem ein größeres
jpayne@68 1971 Wörterbuch sehr hilfreich sein kann, ist ein Archiv, das einander sehr
jpayne@68 1972 ähnliche Dateien enthält, die jeweils wenigstens einige Megabyte groß
jpayne@68 1973 sind. Das Wörterbuch muss dann deutlich größer sein als die einzelne Datei,
jpayne@68 1974 damit LZMA2 den größtmöglichen Vorteil aus den Ähnlichkeiten der aufeinander
jpayne@68 1975 folgenden Dateien zieht.
jpayne@68 1976 .PP
jpayne@68 1977 Wenn hoher Speicherbedarf für Kompression und Dekompression kein Problem ist
jpayne@68 1978 und die zu komprimierende Datei mindestens einige Hundert Megabyte groß ist,
jpayne@68 1979 kann es sinnvoll sein, ein noch größeres Wörterbuch zu verwenden, als die 64
jpayne@68 1980 MiB, die mit \fBxz \-9\fP verwendet werden würden:
jpayne@68 1981 .RS
jpayne@68 1982 .PP
jpayne@68 1983 .nf
jpayne@68 1984 \f(CRxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fR
jpayne@68 1985 .fi
jpayne@68 1986 .RE
jpayne@68 1987 .PP
jpayne@68 1988 Die Verwendung von \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) wie im obigen Beispiel
jpayne@68 1989 kann nützlich sein, um den Speicherbedarf für Kompressor und Dekompressor zu
jpayne@68 1990 sehen. Denken Sie daran, dass ein Wörterbuch, das größer als die
jpayne@68 1991 unkomprimierte Datei ist, Speicherverschwendung wäre. Daher ist der obige
jpayne@68 1992 Befehl für kleine Dateien nicht sinnvoll.
jpayne@68 1993 .PP
jpayne@68 1994 Manchmal spielt die Kompressionszeit keine Rolle, aber der Speicherbedarf
jpayne@68 1995 bei der Dekompression muss gering gehalten werden, zum Beispiel um die Datei
jpayne@68 1996 auf eingebetteten Systemen dekomprimieren zu können. Der folgende Befehl
jpayne@68 1997 verwendet \fB\-6e\fP (\fB\-6 \-\-extreme\fP) als Basis und setzt die Wörterbuchgröße
jpayne@68 1998 auf nur 64\ KiB. Die sich ergebende Datei kann mit XZ Embedded (aus diesem
jpayne@68 1999 Grund ist dort \fB\-\-check=crc32\fP) mit nur etwa 100\ KiB Speicher
jpayne@68 2000 dekomprimiert werden.
jpayne@68 2001 .RS
jpayne@68 2002 .PP
jpayne@68 2003 .nf
jpayne@68 2004 \f(CRxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fR
jpayne@68 2005 .fi
jpayne@68 2006 .RE
jpayne@68 2007 .PP
jpayne@68 2008 Wenn Sie so viele Byte wie möglich herausquetschen wollen, kann die
jpayne@68 2009 Anpassung der Anzahl der literalen Kontextbits (\fIlc\fP) und der Anzahl der
jpayne@68 2010 Positionsbits (\fIpb\fP) manchmal hilfreich sein. Auch die Anpassung der Anzahl
jpayne@68 2011 der literalen Positionsbits (\fIlp\fP) könnte helfen, aber üblicherweise sind
jpayne@68 2012 \fIlc\fP und \fIpb\fP wichtiger. Wenn ein Quellcode\-Archiv zum Beispiel
jpayne@68 2013 hauptsächlich ASCII\-Text enthält, könnte ein Aufruf wie der folgende eine
jpayne@68 2014 etwas kleinere Datei (etwa 0,1\ %) ergeben als mit \fBxz \-6e\fP (versuchen Sie
jpayne@68 2015 es auch \fBlc=4\fP):
jpayne@68 2016 .RS
jpayne@68 2017 .PP
jpayne@68 2018 .nf
jpayne@68 2019 \f(CRxz \-\-lzma2=preset=6e,pb=0,lc=4 source_code.tar\fR
jpayne@68 2020 .fi
jpayne@68 2021 .RE
jpayne@68 2022 .PP
jpayne@68 2023 Die Verwendung eines anderen Filters mit LZMA2 kann die Kompression bei
jpayne@68 2024 verschiedenen Dateitypen verbessern. So könnten Sie eine gemeinsam genutzte
jpayne@68 2025 Bibliothek der Architekturen x86\-32 oder x86\-64 mit dem BCJ\-Filter für x86
jpayne@68 2026 komprimieren:
jpayne@68 2027 .RS
jpayne@68 2028 .PP
jpayne@68 2029 .nf
jpayne@68 2030 \f(CRxz \-\-x86 \-\-lzma2 libfoo.so\fR
jpayne@68 2031 .fi
jpayne@68 2032 .RE
jpayne@68 2033 .PP
jpayne@68 2034 Beachten Sie, dass die Reihenfolge der Filteroptionen von Bedeutung
jpayne@68 2035 ist. Falls \fB\-\-x86\fP nach \fB\-\-lzma2\fP angegeben wird, gibt \fBxz\fP einen Fehler
jpayne@68 2036 aus, weil nach LZMA2 kein weiterer Filter sein darf und auch weil der
jpayne@68 2037 BCJ\-Filter für x86 nicht als letzter Filter in der Filterkette gesetzt
jpayne@68 2038 werden darf.
jpayne@68 2039 .PP
jpayne@68 2040 Der Delta\-Filter zusammen mit LZMA2 kann bei Bitmap\-Bildern gute Ergebnisse
jpayne@68 2041 liefern. Er sollte üblicherweise besser sein als PNG, welches zwar einige
jpayne@68 2042 fortgeschrittene Filter als ein simples delta bietet, aber für die
jpayne@68 2043 eigentliche Kompression »Deflate« verwendet.
jpayne@68 2044 .PP
jpayne@68 2045 Das Bild muss in einem unkomprimierten Format gespeichert werden, zum
jpayne@68 2046 Beispiel als unkomprimiertes TIFF. Der Abstandsparameter des Delta\-Filters
jpayne@68 2047 muss so gesetzt werden, dass er der Anzahl der Bytes pro Pixel im Bild
jpayne@68 2048 entspricht. Zum Beispiel erfordert ein 24\-Bit\-RGB\-Bitmap \fBdist=3\fP, außerdem
jpayne@68 2049 ist es gut, \fBpb=0\fP an LZMA2 zu übergeben, um die 3\-Byte\-Ausrichtung zu
jpayne@68 2050 berücksichtigen:
jpayne@68 2051 .RS
jpayne@68 2052 .PP
jpayne@68 2053 .nf
jpayne@68 2054 \f(CRxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fR
jpayne@68 2055 .fi
jpayne@68 2056 .RE
jpayne@68 2057 .PP
jpayne@68 2058 Wenn sich mehrere Bilder in einem einzelnen Archiv befinden (zum Beispiel\&
jpayne@68 2059 \&\fB.tar\fP), funktioniert der Delta\-Filter damit auch, sofern alle Bilder im
jpayne@68 2060 Archiv die gleiche Anzahl Bytes pro Pixel haben.
jpayne@68 2061 .
jpayne@68 2062 .SH "SIEHE AUCH"
jpayne@68 2063 \fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
jpayne@68 2064 \fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
jpayne@68 2065 .PP
jpayne@68 2066 XZ Utils: <https://tukaani.org/xz/>
jpayne@68 2067 .br
jpayne@68 2068 XZ Embedded: <https://tukaani.org/xz/embedded.html>
jpayne@68 2069 .br
jpayne@68 2070 LZMA\-SDK: <https://7\-zip.org/sdk.html>