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>
|