Spaces:
Running
Running
File size: 78,013 Bytes
1d777c4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 |
'\" t
.\"
.\" Author: Lasse Collin
.\"
.\" This file has been put into the public domain.
.\" You can do whatever you want with this file.
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH XZ 1 2022\-10\-25 Tukaani XZ\-Dienstprogramme
.
.SH BEZEICHNUNG
xz, unxz, xzcat, lzma, unlzma, lzcat \- .xz\- und .lzma\-Dateien komprimieren
oder dekomprimieren
.
.SH ÜBERSICHT
\fBxz\fP [\fIOption…\fP] [\fIDatei…\fP]
.
.SH BEFEHLSALIASE
\fBunxz\fP ist gleichbedeutend mit \fBxz \-\-decompress\fP.
.br
\fBxzcat\fP ist gleichbedeutend mit \fBxz \-\-decompress \-\-stdout\fP.
.br
\fBlzma\fP ist gleichbedeutend mit \fBxz \-\-format=lzma\fP.
.br
\fBunlzma\fP ist gleichbedeutend mit \fBxz \-\-format=lzma \-\-decompress\fP.
.br
\fBlzcat\fP ist gleichbedeutend mit \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
.PP
Wenn Sie Skripte schreiben, die Dateien dekomprimieren, sollten Sie stets
den Namen \fBxz\fP mit den entsprechenden Argumenten (\fBxz \-d\fP oder \fBxz \-dc\fP)
anstelle der Namen \fBunxz\fP und \fBxzcat\fP verwenden.
.
.SH BESCHREIBUNG
\fBxz\fP ist ein Allzweckwerkzeug zur Datenkompression, dessen
Befehlszeilensyntax denen von \fBgzip\fP(1) und \fBbzip2\fP(1) ähnelt. Das native
Dateiformat ist das \fB.xz\fP\-Format, aber das veraltete, von den
LZMA\-Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme
ohne Containerformat\-Header werden ebenfalls unterstützt.
.PP
\fBxz\fP komprimiert oder dekomprimierte jede \fIDatei\fP entsprechend des
gewählten Vorgangsmodus. Falls entweder \fB\-\fP oder keine Datei angegeben ist,
liest \fBxz\fP aus der Standardeingabe und leitet die verarbeiteten Dateien in
die Standardausgabe. Wenn die Standardausgabe kein Terminal ist, verweigert
\fBxz\fP das Schreiben komprimierter Daten in die Standardausgabe. Dabei wird
eine Fehlermeldung angezeigt und die \fIDatei\fP übersprungen. Ebenso
verweigert \fBxz\fP das Lesen komprimierter Daten aus der Standardeingabe, wenn
diese ein Terminal ist.
.PP
\fIDateien\fP, die nicht als \fB\-\fP angegeben sind, werden in eine neue Datei
geschrieben, deren Name aus den Namen der Quell\-\fIDatei\fP abgeleitet wird
(außer wenn \fB\-\-stdout\fP angegeben ist):
.IP \(bu 3
Bei der Kompression wird das Suffix des Formats der Zieldatei (\fB.xz\fP oder
\&\fB.lzma\fP) an den Namen der Quelldatei angehängt und so der Name der
Zieldatei gebildet.
.IP \(bu 3
Bei der Dekompression wird das Suffix \fB.xz\fP oder \fB.lzma\fP vom Dateinamen
entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt \fBxz\fP die
Suffixe \fB.txz\fP und \fB.tlz\fP und ersetzt diese durch \fB.tar\fP.
.PP
Wenn die Zieldatei bereits existiert, wird eine Fehlermeldung angezeigt und
die \fIDatei\fP übersprungen.
.PP
Außer beim Schreiben in die Standardausgabe zeigt \fBxz\fP eine Warnung an und
überspringt die \fIDatei\fP, wenn eine der folgenden Bedingungen zutreffend
ist:
.IP \(bu 3
Die \fIDatei\fP ist keine reguläre Datei. Symbolischen Verknüpfungen wird nicht
gefolgt und daher nicht zu den regulären Dateien gezählt.
.IP \(bu 3
Die \fIDatei\fP hat mehr als eine harte Verknüpfung.
.IP \(bu 3
Für die \fIDatei\fP ist das »setuid«\-, »setgid«\- oder »sticky«\-Bit gesetzt.
.IP \(bu 3
Der Aktionsmodus wird auf Kompression gesetzt und die \fIDatei\fP hat bereits
das Suffix des Zieldateiformats (\fB.xz\fP oder \fB.txz\fP beim Komprimieren in
das \fB.xz\fP\-Format und \fB.lzma\fP oder \fB.tlz\fP beim Komprimieren in das
\&\fB.lzma\fP\-Format).
.IP \(bu 3
Der Aktionsmodus wird auf Dekompression gesetzt und die \fIDatei\fP hat nicht
das Suffix eines der unterstützten Zieldateiformate (\fB.xz\fP, \fB.txz\fP,
\&\fB.lzma\fP oder \fB.tlz\fP).
.PP
Nach erfolgreicher Kompression oder Dekompression der \fIDatei\fP kopiert \fBxz\fP
Eigentümer, Gruppe, Zugriffsrechte, Zugriffszeit und Änderungszeit aus der
Ursprungs\-\fIDatei\fP in die Zieldatei. Sollte das Kopieren der Gruppe
fehlschlagen, werden die Zugriffsrechte so angepasst, dass jenen Benutzern
der Zugriff auf die Zieldatei verwehrt bleibt, die auch keinen Zugriff auf
die Ursprungs\-\fIDatei\fP hatten. Das Kopieren anderer Metadaten wie
Zugriffssteuerlisten oder erweiterter Attribute wird von \fBxz\fP noch nicht
unterstützt.
.PP
Once the target file has been successfully closed, the source \fIfile\fP is
removed unless \fB\-\-keep\fP was specified. The source \fIfile\fP is never removed
if the output is written to standard output or if an error occurs.
.PP
Durch Senden der Signale \fBSIGINFO\fP oder \fBSIGUSR1\fP an den \fBxz\fP\-Prozess
werden Fortschrittsinformationen in den Fehlerkanal der Standardausgabe
geleitet. Dies ist nur eingeschränkt hilfreich, wenn die
Standardfehlerausgabe ein Terminal ist. Mittels \fB\-\-verbose\fP wird ein
automatisch aktualisierter Fortschrittsanzeiger angezeigt.
.
.SS Speicherbedarf
In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der
Speicherverbrauch zwischen wenigen hundert Kilobyte und mehrere
Gigabyte. Die Einstellungen bei der Kompression einer Datei bestimmen dabei
den Speicherbedarf bei der Dekompression. Die Dekompression benötigt
üblicherweise zwischen 5\ % und 20\ % des Speichers, der bei der Kompression
der Datei erforderlich war. Beispielsweise benötigt die Dekompression einer
Datei, die mit \fBxz \-9\fP komprimiert wurde, gegenwärtig etwa 65\ MiB
Speicher. Es ist jedoch auch möglich, dass \fB.xz\fP\-Dateien mehrere Gigabyte
an Speicher zur Dekompression erfordern.
.PP
Especially users of older systems may find the possibility of very large
memory usage annoying. To prevent uncomfortable surprises, \fBxz\fP has a
built\-in memory usage limiter, which is disabled by default. While some
operating systems provide ways to limit the memory usage of processes,
relying on it wasn't deemed to be flexible enough (for example, using
\fBulimit\fP(1) to limit virtual memory tends to cripple \fBmmap\fP(2)).
.PP
The memory usage limiter can be enabled with the command line option
\fB\-\-memlimit=\fP\fIlimit\fP. Often it is more convenient to enable the limiter
by default by setting the environment variable \fBXZ_DEFAULTS\fP, for example,
\fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. It is possible to set the limits
separately for compression and decompression by using
\fB\-\-memlimit\-compress=\fP\fIlimit\fP and \fB\-\-memlimit\-decompress=\fP\fIlimit\fP.
Using these two options outside \fBXZ_DEFAULTS\fP is rarely useful because a
single run of \fBxz\fP cannot do both compression and decompression and
\fB\-\-memlimit=\fP\fIlimit\fP (or \fB\-M\fP \fIlimit\fP) is shorter to type on the
command line.
.PP
If the specified memory usage limit is exceeded when decompressing, \fBxz\fP
will display an error and decompressing the file will fail. If the limit is
exceeded when compressing, \fBxz\fP will try to scale the settings down so that
the limit is no longer exceeded (except when using \fB\-\-format=raw\fP or
\fB\-\-no\-adjust\fP). This way the operation won't fail unless the limit is very
small. The scaling of the settings is done in steps that don't match the
compression level presets, for example, if the limit is only slightly less
than the amount required for \fBxz \-9\fP, the settings will be scaled down only
a little, not all the way down to \fBxz \-8\fP.
.
.SS "Verkettung und Auffüllung von .xz\-Dateien"
Es ist möglich, \fB.xz\fP\-Dateien direkt zu verketten. Solche Dateien werden
von \fBxz\fP genauso dekomprimiert wie eine einzelne \fB.xz\fP\-Datei.
.PP
It is possible to insert padding between the concatenated parts or after the
last part. The padding must consist of null bytes and the size of the
padding must be a multiple of four bytes. This can be useful, for example,
if the \fB.xz\fP file is stored on a medium that measures file sizes in
512\-byte blocks.
.PP
Verkettung und Auffüllung sind für \fB.lzma\fP\-Dateien oder Rohdatenströme
nicht erlaubt.
.
.SH OPTIONEN
.
.SS "Ganzzahlige Suffixe und spezielle Werte"
An den meisten Stellen, wo ein ganzzahliges Argument akzeptiert wird, kann
ein optionales Suffix große Ganzzahlwerte einfacher darstellen. Zwischen
Ganzzahl und dem Suffix dürfen sich keine Leerzeichen befinden.
.TP
\fBKiB\fP
multipliziert die Ganzzahl mit 1.024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP und
\fBKB\fP werden als Synonyme für \fBKiB\fP akzeptiert.
.TP
\fBMiB\fP
multipliziert die Ganzzahl mit 1.048.576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP und \fBMB\fP
werden als Synonyme für \fBMiB\fP akzeptiert.
.TP
\fBGiB\fP
multipliziert die Ganzzahl mit 1.073.741.824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP und
\fBGB\fP werden als Synonyme für \fBGiB\fP akzeptiert.
.PP
Der spezielle Wert \fBmax\fP kann dazu verwendet werden, um den von der
jeweiligen Option akzeptierten maximalen Ganzzahlwert anzugeben.
.
.SS Aktionsmodus
Falls mehrere Aktionsmodi angegeben sind, wird der zuletzt angegebene
verwendet.
.TP
\fB\-z\fP, \fB\-\-compress\fP
Kompression. Dies ist der voreingestellte Aktionsmodus, sofern keiner
angegeben ist und auch kein bestimmter Modus aus dem Befehlsnamen abgeleitet
werden kann (der Befehl \fBunxz\fP impliziert zum Beispiel \fB\-\-decompress\fP).
.TP
\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
dekomprimpiert.
.TP
\fB\-t\fP, \fB\-\-test\fP
prüft die Integrität der komprimierten \fIDateien\fP. Diese Option ist
gleichbedeutend mit \fB\-\-decompress \-\-stdout\fP, außer dass die dekomprimierten
Daten verworfen werden, anstatt sie in die Standardausgabe zu leiten. Es
werden keine Dateien erstellt oder entfernt.
.TP
\fB\-l\fP, \fB\-\-list\fP
gibt Informationen zu den komprimierten \fIDateien\fP aus. Es werden keine
unkomprimierten Dateien ausgegeben und keine Dateien angelegt oder
entfernt. Im Listenmodus kann das Programm keine komprimierten Daten aus der
Standardeingabe oder anderen nicht durchsuchbaren Quellen lesen.
.IP ""
The default listing shows basic information about \fIfiles\fP, one file per
line. To get more detailed information, use also the \fB\-\-verbose\fP option.
For even more information, use \fB\-\-verbose\fP twice, but note that this may be
slow, because getting all the extra information requires many seeks. The
width of verbose output exceeds 80 characters, so piping the output to, for
example, \fBless\ \-S\fP may be convenient if the terminal isn't wide enough.
.IP ""
Die exakte Ausgabe kann in verschiedenen \fBxz\fP\-Versionen und
Spracheinstellungen unterschiedlich sein. Wenn eine maschinell auswertbare
Ausgabe gewünscht ist, dann sollten Sie \fB\-\-robot \-\-list\fP verwenden.
.
.SS Aktionsattribute
.TP
\fB\-k\fP, \fB\-\-keep\fP
verhindert das Löschen der Eingabedateien.
.IP ""
Since \fBxz\fP 5.2.6, this option also makes \fBxz\fP compress or decompress even
if the input is a symbolic link to a regular file, has more than one hard
link, or has the setuid, setgid, or sticky bit set. The setuid, setgid, and
sticky bits are not copied to the target file. In earlier versions this was
only done with \fB\-\-force\fP.
.TP
\fB\-f\fP, \fB\-\-force\fP
Diese Option hat verschiedene Auswirkungen:
.RS
.IP \(bu 3
Wenn die Zieldatei bereits existiert, wird diese vor der Kompression oder
Dekompression gelöscht.
.IP \(bu 3
Die Kompression oder Dekompression wird auch dann ausgeführt, wenn die
Eingabe ein symbolischer Link zu einer regulären Datei ist, mehr als einen
harten Link hat oder das »setuid«\-, »setgid«\- oder »sticky«\-Bit gesetzt
ist. Die genannten Bits werden nicht in die Zieldatei kopiert.
.IP \(bu 3
Wenn es zusammen mit \fB\-\-decompress\fP und \fB\-\-stdout\fP verwendet wird und
\fBxz\fP den Typ der Quelldatei nicht ermitteln kann, wird die Quelldatei
unverändert in die Standardausgabe kopiert. Dadurch kann \fBxzcat\fP \fB\-\-force\fP
für Dateien, die nicht mit \fBxz\fP komprimiert wurden, wie \fBcat\fP(1) verwendet
werden. Zukünftig könnte \fBxz\fP neue Dateikompressionsformate unterstützen,
wodurch \fBxz\fP mehr Dateitypen dekomprimieren kann, anstatt sie unverändert
in die Standardausgabe zu kopieren. Mit der Option \fB\-\-format=\fP\fIFormat\fP
können Sie \fBxz\fP anweisen, nur ein einzelnes Dateiformat zu dekomprimieren.
.RE
.TP
\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
schreibt die komprimierten oder dekomprimierten Daten in die Standardausgabe
anstatt in eine Datei. Dies impliziert \fB\-\-keep\fP.
.TP
\fB\-\-single\-stream\fP
dekomprimiert nur den ersten \fB.xz\fP\-Datenstrom und ignoriert stillschweigend
weitere Eingabedaten, die möglicherweise dem Datenstrom
folgen. Normalerweise führt solcher anhängender Datenmüll dazu, dass \fBxz\fP
eine Fehlermeldung ausgibt.
.IP ""
\fBxz\fP dekomprimiert niemals mehr als einen Datenstrom aus \fB.lzma\fP\-Dateien
oder Rohdatenströmen, aber dennoch wird durch diese Option möglicherweise
vorhandener Datenmüll nach der \fB.lzma\fP\-Datei oder dem Rohdatenstrom
ignoriert.
.IP ""
Diese Option ist wirkungslos, wenn der Aktionsmodus nicht \fB\-\-decompress\fP
oder \fB\-\-test\fP ist.
.TP
\fB\-\-no\-sparse\fP
verhindert die Erzeugung von Sparse\-Dateien. In der Voreinstellung versucht
\fBxz\fP, bei der Dekompression in eine reguläre Datei eine Sparse\-Datei zu
erzeugen, wenn die dekomprimierten Daten lange Abfolgen von binären Nullen
enthalten. Dies funktioniert auch beim Schreiben in die Standardausgabe,
sofern diese in eine reguläre Datei weitergeleitet wird und bestimmte
Zusatzbedingungen erfüllt sind, die die Aktion absichern. Die Erzeugung von
Sparse\-Dateien kann Plattenplatz sparen und beschleunigt die Dekompression
durch Verringerung der Ein\-/Ausgaben der Platte.
.TP
\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
verwendet \fI.suf\fP bei der Dekompression anstelle von \fB.xz\fP oder \fB.lzma\fP
als Suffix für die Zieldatei. Falls nicht in die Standardausgabe geschrieben
wird und die Quelldatei bereits das Suffix \fI.suf\fP hat, wird eine Warnung
angezeigt und die Datei übersprungen.
.IP ""
berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen
\&\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP oder \fB.tlz\fP auch jene mit dem Suffix
\&\fI.suf\fP. Falls die Quelldatei das Suffix \fI.suf\fP hat, wird dieses entfernt
und so der Name der Zieldatei abgeleitet.
.IP ""
Beim Komprimieren oder Dekomprimieren von Rohdatenströmen mit
\fB\-\-format=raw\fP muss das Suffix stets angegeben werden, außer wenn die
Ausgabe in die Standardausgabe erfolgt. Der Grund dafür ist, dass es kein
vorgegebenes Suffix für Rohdatenströme gibt.
.TP
\fB\-\-files\fP[\fB=\fP\fIDatei\fP]
liest die zu verarbeitenden Dateinamen aus \fIDatei\fP. Falls keine \fIDatei\fP
angegeben ist, werden die Dateinamen aus der Standardeingabe
gelesen. Dateinamen müssen mit einem Zeilenumbruch beendet werden. Ein
Bindestrich (\fB\-\fP) wird als regulärer Dateiname angesehen und nicht als
Standardeingabe interpretiert. Falls Dateinamen außerdem als
Befehlszeilenargumente angegeben sind, werden diese vor den Dateinamen aus
der \fIDatei\fP verarbeitet.
.TP
\fB\-\-files0\fP[\fB=\fP\fIDatei\fP]
Dies ist gleichbedeutend mit \fB\-\-files\fP[\fB=\fP\fIDatei\fP], außer dass jeder
Dateiname mit einem Null\-Zeichen abgeschlossen werden muss.
.
.SS "Grundlegende Dateiformat\- und Kompressionsoptionen"
.TP
\fB\-F\fP \fIFormat\fP, \fB\-\-format=\fP\fIFormat\fP
gibt das \fIFormat\fP der zu komprimierenden oder dekomprimierenden Datei an:
.RS
.TP
\fBauto\fP
Dies ist die Voreinstellung. Bei der Kompression ist \fBauto\fP gleichbedeutend
mit \fBxz\fP. Bei der Dekompression wird das Format der Eingabedatei
automatisch erkannt. Beachten Sie, dass Rohdatenströme, wie sie mit
\fB\-\-format=raw\fP erzeugt werden, nicht automatisch erkannt werden können.
.TP
\fBxz\fP
Die Kompression erfolgt in das \fB.xz\fP\-Dateiformat oder akzeptiert nur
\&\fB.xz\fP\-Dateien bei der Dekompression.
.TP
\fBlzma\fP, \fBalone\fP
Die Kompression erfolgt in das veraltete \fB.lzma\fP\-Dateiformat oder
akzeptiert nur \fB.lzma\fP\-Dateien bei der Dekompression. Der alternative Name
\fBalone\fP dient der Abwärtskompatibilität zu den LZMA\-Dienstprogrammen.
.TP
\fBraw\fP
Komprimiert oder dekomprimiert einen Rohdatenstrom (ohne Header). Diese
Option ist nur für fortgeschrittene Benutzer bestimmt. Zum Dekodieren von
Rohdatenströmen müssen Sie die Option \fB\-\-format=raw\fP verwenden und die
Filterkette ausdrücklich angeben, die normalerweise in den (hier fehlenden)
Container\-Headern gespeichert worden wäre.
.RE
.TP
\fB\-C\fP \fIPrüfung\fP, \fB\-\-check=\fP\fIPrüfung\fP
gibt den Typ der Integritätsprüfung an. Die Prüfsumme wird aus den
unkomprimierten Daten berechnet und in der \fB.xz\fP\-Datei gespeichert. Diese
Option wird nur bei der Kompression in das \fB.xz\fP\-Format angewendet, da das
\&\fB.lzma\fP\-Format keine Integritätsprüfungen unterstützt. Die eigentliche
Integritätsprüfung erfolgt (falls möglich), wenn die \fB.xz\fP\-Datei
dekomprimiert wird.
.IP ""
Folgende Typen von \fIPrüfungen\fP werden unterstützt:
.RS
.TP
\fBnone\fP
führt keine Integritätsprüfung aus. Dies ist eine eher schlechte
Idee. Dennoch kann es nützlich sein, wenn die Integrität der Daten auf
andere Weise sichergestellt werden kann.
.TP
\fBcrc32\fP
berechnet die CRC32\-Prüfsumme anhand des Polynoms aus IEEE\-802.3 (Ethernet).
.TP
\fBcrc64\fP
berechnet die CRC64\-Prüfsumme anhand des Polynoms aus ECMA\-182. Dies ist die
Voreinstellung, da beschädigte Dateien etwas besser als mit CRC32 erkannt
werden und die Geschwindigkeitsdifferenz unerheblich ist.
.TP
\fBsha256\fP
berechnet die SHA\-256\-Prüfsumme. Dies ist etwas langsamer als CRC32 und
CRC64.
.RE
.IP ""
Die Integrität der \fB.xz\fP\-Header wird immer mit CRC32 geprüft. Es ist nicht
möglich, dies zu ändern oder zu deaktivieren.
.TP
\fB\-\-ignore\-check\fP
verifiziert die Integritätsprüfsumme der komprimierten Daten bei der
Dekompression nicht. Die CRC32\-Werte in den \fB.xz\fP\-Headern werden weiterhin
normal verifiziert.
.IP ""
\fBVerwenden Sie diese Option nicht, außer Sie wissen, was Sie tun.\fP Mögliche
Gründe, diese Option zu verwenden:
.RS
.IP \(bu 3
Versuchen, Daten aus einer beschädigten .xz\-Datei wiederherzustellen.
.IP \(bu 3
Erhöhung der Geschwindigkeit bei der Dekompression. Dies macht sich meist
mit SHA\-256 bemerkbar, oder mit Dateien, die extrem stark komprimiert
sind. Wir empfehlen, diese Option nicht für diesen Zweck zu verwenden, es
sei denn, die Integrität der Datei wird extern auf andere Weise überprüft.
.RE
.TP
\fB\-0\fP … \fB\-9\fP
wählt eine der voreingestellten Kompressionsstufen, standardmäßig
\fB\-6\fP. Wenn mehrere Voreinstellungsstufen angegeben sind, ist nur die
zuletzt angegebene wirksam. Falls bereits eine benutzerdefinierte
Filterkette angegeben wurde, wird diese durch die Festlegung der
Voreinstellung geleert.
.IP ""
Die Unterschiede zwischen den Voreinstellungsstufen sind deutlicher als bei
\fBgzip\fP(1) und \fBbzip2\fP(1). Die gewählten Kompressionseinstellungen
bestimmen den Speicherbedarf bei der Dekompression, daher ist es auf älteren
Systemen mit wenig Speicher bei einer zu hoch gewählten Voreinstellung
schwer, eine Datei zu dekomprimieren. Insbesondere \fBist es keine gute Idee, blindlings \-9 für alles\fP zu verwenden, wie dies häufig mit \fBgzip\fP(1) und
\fBbzip2\fP(1) gehandhabt wird.
.RS
.TP
\fB\-0\fP … \fB\-3\fP
Diese Voreinstellungen sind recht schnell. \fB\-0\fP ist manchmal schneller als
\fBgzip \-9\fP, wobei aber die Kompression wesentlich besser ist. Die
schnelleren Voreinstellungen sind im Hinblick auf die Geschwindigkeit mit
\fBbzip2\fP(1) vergleichbar , mit einem ähnlichen oder besseren
Kompressionsverhältnis, wobei das Ergebnis aber stark vom Typ der zu
komprimierenden Daten abhängig ist.
.TP
\fB\-4\fP … \fB\-6\fP
Good to very good compression while keeping decompressor memory usage
reasonable even for old systems. \fB\-6\fP is the default, which is usually a
good choice for distributing files that need to be decompressible even on
systems with only 16\ MiB RAM. (\fB\-5e\fP or \fB\-6e\fP may be worth considering
too. See \fB\-\-extreme\fP.)
.TP
\fB\-7 … \-9\fP
Ähnlich wie \fB\-6\fP, aber mit einem höheren Speicherbedarf für die Kompression
und Dekompression. Sie sind nur nützlich, wenn Dateien komprimiert werden
sollen, die größer als 8\ MiB, 16\ MiB beziehungsweise 32\ MiB sind.
.RE
.IP ""
Auf der gleichen Hardware ist die Dekompressionsgeschwindigkeit ein nahezu
konstanter Wert in Bytes komprimierter Daten pro Sekunde. Anders
ausgedrückt: Je besser die Kompression, umso schneller wird üblicherweise
die Dekompression sein. Das bedeutet auch, dass die Menge der pro Sekunde
ausgegebenen unkomprimierten Daten stark variieren kann.
.IP ""
Die folgende Tabelle fasst die Eigenschaften der Voreinstellungen zusammen:
.RS
.RS
.PP
.TS
tab(;);
c c c c c
n n n n n.
Voreinstellung;DictGröße;KompCPU;KompSpeicher;DekSpeicher
\-0;256 KiB;0;3 MiB;1 MiB
\-1;1 MiB;1;9 MiB;2 MiB
\-2;2 MiB;2;17 MiB;3 MiB
\-3;4 MiB;3;32 MiB;5 MiB
\-4;4 MiB;4;48 MiB;5 MiB
\-5;8 MiB;5;94 MiB;9 MiB
\-6;8 MiB;6;94 MiB;9 MiB
\-7;16 MiB;6;186 MiB;17 MiB
\-8;32 MiB;6;370 MiB;33 MiB
\-9;64 MiB;6;674 MiB;65 MiB
.TE
.RE
.RE
.IP ""
Spaltenbeschreibungen:
.RS
.IP \(bu 3
DictGröße ist die Größe des LZMA2\-Wörterbuchs. Es ist Speicherverschwendung,
ein Wörterbuch zu verwenden, das größer als die unkomprimierte Datei
ist. Daher ist es besser, die Voreinstellungen \fB\-7\fP … \fB\-9\fP zu vermeiden,
falls es keinen wirklichen Bedarf dafür gibt. Mit \fB\-6\fP und weniger wird
üblicherweise so wenig Speicher verschwendet, dass dies nicht ins Gewicht
fällt.
.IP \(bu 3
KompCPU ist eine vereinfachte Repräsentation der LZMA2\-Einstellungen, welche
die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße wirkt sich
ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die Stufen \fB\-6\fP
bis \fB\-9\fP gleich ist, tendieren höhere Stufen dazu, etwas langsamer zu
sein. Um eine noch langsamere, aber möglicherweise bessere Kompression zu
erhalten, siehe \fB\-\-extreme\fP.
.IP \(bu 3
KompSpeicher enthält den Speicherbedarf des Kompressors im
Einzel\-Thread\-Modus. Dieser kann zwischen den \fBxz\fP\-Versionen leicht
variieren. Der Speicherbedarf einiger der zukünftigen Multithread\-Modi kann
dramatisch höher sein als im Einzel\-Thread\-Modus.
.IP \(bu 3
DekSpeicher enthält den Speicherbedarf für die Dekompression. Das bedeutet,
dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression
bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig
größer als die Größe des LZMA2\-Wörterbuchs, aber die Werte in der Tabelle
wurden auf ganze MiB aufgerundet.
.RE
.TP
\fB\-e\fP, \fB\-\-extreme\fP
verwendet eine langsamere Variante der gewählten
Kompressions\-Voreinstellungsstufe (\fB\-0\fP … \fB\-9\fP), um hoffentlich ein etwas
besseres Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen
auch schlechter werden kann. Der Speicherverbrauch bei der Dekompression
wird dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression
steigt in der Voreinstellungsstufen \fB\-0\fP bis \fB\-3\fP geringfügig an.
.IP ""
Da es zwei Voreinstellungen mit den Wörterbuchgrößen 4\ MiB und 8\ MiB gibt,
verwenden die Voreinstellungsstufen \fB\-3e\fP und \fB\-5e\fP etwas schnellere
Einstellungen (niedrigere KompCPU) als \fB\-4e\fP beziehungsweise \fB\-6e\fP. Auf
diese Weise sind zwei Voreinstellungen nie identisch.
.RS
.RS
.PP
.TS
tab(;);
c c c c c
n n n n n.
Voreinstellung;DictGröße;KompCPU;KompSpeicher;DekSpeicher
\-0e;256 KiB;8;4 MiB;1 MiB
\-1e;1 MiB;8;13 MiB;2 MiB
\-2e;2 MiB;8;25 MiB;3 MiB
\-3e;4 MiB;7;48 MiB;5 MiB
\-4e;4 MiB;8;48 MiB;5 MiB
\-5e;8 MiB;7;94 MiB;9 MiB
\-6e;8 MiB;8;94 MiB;9 MiB
\-7e;16 MiB;8;186 MiB;17 MiB
\-8e;32 MiB;8;370 MiB;33 MiB
\-9e;64 MiB;8;674 MiB;65 MiB
.TE
.RE
.RE
.IP ""
Zum Beispiel gibt es insgesamt vier Voreinstellungen, die ein 8\ MiB großes
Wörterbuch verwenden, deren Reihenfolge von der schnellsten zur langsamsten
\fB\-5\fP, \fB\-6\fP, \fB\-5e\fP und \fB\-6e\fP ist.
.TP
\fB\-\-fast\fP
.PD 0
.TP
\fB\-\-best\fP
.PD
sind etwas irreführende Aliase für \fB\-0\fP beziehungsweise \fB\-9\fP. Sie werden
nur zwecks Abwärtskompatibilität zu den LZMA\-Dienstprogrammen
bereitgestellt. Sie sollten diese Optionen besser nicht verwenden.
.TP
\fB\-\-block\-size=\fP\fIGröße\fP
teilt beim Komprimieren in das \fB.xz\fP\-Format die Eingabedaten in Blöcke der
angegebenen \fIGröße\fP in Byte. Die Blöcke werden unabhängig voneinander
komprimiert, was dem Multi\-Threading entgegen kommt und Zufallszugriffe bei
der Dekompression begrenzt. Diese Option wird typischerweise eingesetzt, um
die vorgegebene Blockgröße im Multi\-Thread\-Modus außer Kraft zu setzen, aber
sie kann auch im Einzel\-Thread\-Modus angewendet werden.
.IP ""
In multi\-threaded mode about three times \fIsize\fP bytes will be allocated in
each thread for buffering input and output. The default \fIsize\fP is three
times the LZMA2 dictionary size or 1 MiB, whichever is more. Typically a
good value is 2\(en4 times the size of the LZMA2 dictionary or at least 1
MiB. Using \fIsize\fP less than the LZMA2 dictionary size is waste of RAM
because then the LZMA2 dictionary buffer will never get fully used. The
sizes of the blocks are stored in the block headers, which a future version
of \fBxz\fP will use for multi\-threaded decompression.
.IP ""
Im Einzel\-Thread\-Modus werden die Blöcke standardmäßig nicht geteilt. Das
Setzen dieser Option wirkt sich nicht auf den Speicherbedarf aus. In den
Block\-Headern werden keine Größeninformationen gespeichert, daher werden im
Einzel\-Thread\-Modus erzeugte Dateien nicht zu den im Multi\-Thread\-Modus
erzeugten Dateien identisch sein. Das Fehlen der Größeninformation bedingt
auch, dass eine zukünftige Version von \fBxz\fP nicht in der Lage sein wird,
die Dateien im Multi\-Thread\-Modus zu dekomprimieren.
.TP
\fB\-\-block\-list=\fP\fIGrößen\fP
beginnt bei der Kompression in das \fB.xz\fP\-Format nach den angegebenen
Intervallen unkomprimierter Daten einen neuen Block.
.IP ""
Die unkomprimierte \fIGröße\fP der Blöcke wird in einer durch Kommata
getrennten Liste angegeben. Auslassen einer Größe (zwei oder mehr
aufeinander folgende Kommata) ist ein Kürzel dafür, die Größe des vorherigen
Blocks zu verwenden.
.IP ""
Falls die Eingabedatei größer ist als die Summe der \fIGrößen\fP, dann wird der
letzte in \fIGröße\fP angegebene Wert bis zum Ende der Datei wiederholt. Mit
dem speziellen Wert \fB0\fP können Sie angeben, dass der Rest der Datei als
einzelner Block kodiert werden soll.
.IP ""
Falls Sie \fIGrößen\fP angeben, welche die Blockgröße des Encoders übersteigen
(entweder den Vorgabewert im Thread\-Modus oder den mit
\fB\-\-block\-size=\fP\fIGröße\fP angegebenen Wert), wird der Encoder zusätzliche
Blöcke erzeugen, wobei die in den \fIGrößen\fP angegebenen Grenzen eingehalten
werden. Wenn Sie zum Beispiel \fB\-\-block\-size=10MiB\fP
\fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP angeben und die Eingabedatei 80
MiB groß ist, erhalten Sie 11 Blöcke: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 und
1 MiB.
.IP ""
Im Multi\-Thread\-Modus werden die Blockgrößen in den Block\-Headern
gespeichert. Dies geschieht im Einzel\-Thread\-Modus nicht, daher wird die
kodierte Ausgabe zu der im Multi\-Thread\-Modus nicht identisch sein.
.TP
\fB\-\-flush\-timeout=\fP\fIZeit\fP
löscht bei der Kompression die ausstehenden Daten aus dem Encoder und macht
sie im Ausgabedatenstrom verfügbar, wenn mehr als die angegebene \fIZeit\fP in
Millisekunden (als positive Ganzzahl) seit dem vorherigen Löschen vergangen
ist und das Lesen weiterer Eingaben blockieren würde. Dies kann nützlich
sein, wenn \fBxz\fP zum Komprimieren von über das Netzwerk eingehenden Daten
verwendet wird. Kleine \fIZeit\fP\-Werte machen die Daten unmittelbar nach dem
Empfang nach einer kurzen Verzögerung verfügbar, während große \fIZeit\fP\-Werte
ein besseres Kompressionsverhältnis bewirken.
.IP ""
Dieses Funktionsmerkmal ist standardmäßig deaktiviert. Wenn diese Option
mehrfach angegeben wird, ist die zuletzt angegebene wirksam. Für die Angabe
der \fIZeit\fP kann der spezielle Wert \fB0\fP verwendet werden, um dieses
Funktionsmerkmal explizit zu deaktivieren.
.IP ""
Dieses Funktionsmerkmal ist außerhalb von POSIX\-Systemen nicht verfügbar.
.IP ""
.\" FIXME
\fBDieses Funktionsmerkmal ist noch experimentell.\fP Gegenwärtig ist \fBxz\fP
aufgrund der Art und Weise, wie \fBxz\fP puffert, für Dekompression in Echtzeit
ungeeignet.
.TP
\fB\-\-memlimit\-compress=\fP\fIGrenze\fP
legt eine Grenze für die Speichernutzung bei der Kompression fest. Wenn
diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam.
.IP ""
Falls die Kompressionseinstellungen die \fIGrenze\fP überschreiten, passt \fBxz\fP
die Einstellungen nach unten an, so dass die Grenze nicht mehr überschritten
wird und zeigt einen Hinweis an, dass eine automatische Anpassung
vorgenommen wurde. Solche Anpassungen erfolgen nicht, wenn mit
\fB\-\-format=raw\fP komprimiert wird oder wenn \fB\-\-no\-adjust\fP angegeben
wurde. In diesen Fällen wird eine Fehlermeldung mit dem Exit\-Status 1
ausgegeben und \fBxz\fP mit dem Exit\-Status 1 beendet.
.IP ""
Die \fIGrenze\fP kann auf verschiedene Arten angegeben werden:
.RS
.IP \(bu 3
Die \fIGrenze\fP kann ein absoluter Wert in Byte sein. Ein Suffix wie \fBMiB\fP
kann dabei hilfreich sein. Beispiel: \fB\-\-memlimit\-compress=80MiB\fP.
.IP \(bu 3
Die \fIGrenze\fP kann als Prozentsatz des physischen Gesamtspeichers (RAM)
angegeben werden. Dies ist insbesondere nützlich, wenn in einem
Shell\-Initialisierungsskript, das mehrere unterschiedliche Rechner gemeinsam
verwenden, die Umgebungsvariable \fBXZ_DEFAULTS\fP gesetzt ist. Auf diese Weise
ist die Grenze auf Systemen mit mehr Speicher höher. Beispiel:
\fB\-\-memlimit\-compress=70%\fP
.IP \(bu 3
Mit \fB0\fP kann die \fIGrenze\fP auf den Standardwert zurückgesetzt werden. Dies
ist gegenwärtig gleichbedeutend mit dem Setzen der \fIGrenze\fP auf \fBmax\fP
(keine Speicherbegrenzung). Sobald die Unterstützung für Multi\-Threading
implementiert wurde, kann es im Multi\-Thread\-Fall einen Unterschied zwischen
\fB0\fP und \fBmax\fP geben, daher wird empfohlen, \fB0\fP anstelle von \fBmax\fP zu
verwenden, bis die Einzelheiten hierzu geklärt sind.
.RE
.IP ""
For 32\-bit \fBxz\fP there is a special case: if the \fIlimit\fP would be over
\fB4020\ MiB\fP, the \fIlimit\fP is set to \fB4020\ MiB\fP. On MIPS32 \fB2000\ MiB\fP
is used instead. (The values \fB0\fP and \fBmax\fP aren't affected by this. A
similar feature doesn't exist for decompression.) This can be helpful when
a 32\-bit executable has access to 4\ GiB address space (2 GiB on MIPS32)
while hopefully doing no harm in other situations.
.IP ""
Siehe auch den Abschnitt \fBSpeicherbedarf\fP.
.TP
\fB\-\-memlimit\-decompress=\fP\fIGrenze\fP
legt eine Begrenzung des Speicherverbrauchs für die Dekompression fest. Dies
beeinflusst auch den Modus \fB\-\-list\fP. Falls die Aktion nicht ausführbar ist,
ohne die \fIGrenze\fP zu überschreiten, gibt \fBxz\fP eine Fehlermeldung aus und
die Dekompression wird fehlschlagen. Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
zu möglichen Wegen, die \fIGrenze\fP anzugeben.
.TP
\fB\-M\fP \fIGrenze\fP, \fB\-\-memlimit=\fP\fIGrenze\fP, \fB\-\-memory=\fP\fIGrenze\fP
This is equivalent to specifying \fB\-\-memlimit\-compress=\fP\fIlimit\fP
\fB\-\-memlimit\-decompress=\fP\fIlimit\fP.
.TP
\fB\-\-no\-adjust\fP
zeigt einen Fehler an und bricht die Ausführung ab, falls die
Kompressionseinstellungen die Begrenzung der Speichernutzung
überschreiten. Standardmäßig werden die Einstellungen nach unten korrigiert,
so dass diese Grenze nicht überschritten wird. Bei der Erzeugung von
Rohdatenströmen (\fB\-\-format=raw\fP) ist die automatische Korrektur stets
deaktiviert.
.TP
\fB\-T\fP \fIThreads\fP, \fB\-\-threads=\fP\fIThreads\fP
gibt die Anzahl der zu verwendenden Arbeits\-Threads an. Wenn Sie \fIThreads\fP
auf einen speziellen Wert \fB0\fP setzen, verwendet \fBxz\fP so viele Threads, wie
Prozessorkerne im System verfügbar sind. Die tatsächliche Anzahl kann
geringer sein als die angegebenen \fIThreads\fP, wenn die Eingabedatei nicht
groß genug für Threading mit den gegebenen Einstellungen ist oder wenn mehr
Threads die Speicherbegrenzung übersteigen würden.
.IP ""
Die gegenwärtig einzige Threading\-Methode teilt die Eingabe in Blöcke und
komprimiert diese unabhängig voneinander. Die vorgegebene Blockgröße ist von
der Kompressionsstufe abhängig und kann mit der Option
\fB\-\-block\-size=\fP\fIGröße\fP außer Kraft gesetzt werden.
.IP ""
Eine thread\-basierte Dekompression wurde bislang noch nicht
implementiert. Sie wird nur bei Dateien funktionieren, die mehrere Blöcke
mit Größeninformationen in deren Headern enthalten. Alle im
Multi\-Thread\-Modus komprimierten Dateien erfüllen diese Bedingung, im
Einzel\-Thread\-Modus komprimierte Dateien dagegen nicht, selbst wenn
\fB\-\-block\-size=\fP\fIGröße\fP verwendet wird.
.
.SS "Benutzerdefinierte Filterketten für die Kompression"
A custom filter chain allows specifying the compression settings in detail
instead of relying on the settings associated to the presets. When a custom
filter chain is specified, preset options (\fB\-0\fP \&...\& \fB\-9\fP and
\fB\-\-extreme\fP) earlier on the command line are forgotten. If a preset
option is specified after one or more custom filter chain options, the new
preset takes effect and the custom filter chain options specified earlier
are forgotten.
.PP
Eine Filterkette ist mit dem Piping (der Weiterleitung) in der Befehlszeile
vergleichbar. Bei der Kompression gelangt die unkomprimierte Eingabe in den
ersten Filter, dessen Ausgabe wiederum in den zweiten Filter geleitet wird
(sofern ein solcher vorhanden ist). Die Ausgabe des letzten Filters wird in
die komprimierte Datei geschrieben. In einer Filterkette sind maximal vier
Filter zulässig, aber typischerweise besteht eine Filterkette nur aus einem
oder zwei Filtern.
.PP
Bei vielen Filtern ist die Positionierung in der Filterkette eingeschränkt:
Einige Filter sind nur als letzte in der Kette verwendbar, einige können
nicht als letzte Filter gesetzt werden, und andere funktionieren an
beliebiger Stelle. Abhängig von dem Filter ist diese Beschränkung entweder
auf das Design des Filters selbst zurückzuführen oder ist aus
Sicherheitsgründen vorhanden.
.PP
Eine benutzerdefinierte Filterkette wird durch eine oder mehrere
Filteroptionen in der Reihenfolge angegeben, in der sie in der Filterkette
wirksam werden sollen. Daher ist die Reihenfolge der Filteroptionen von
signifikanter Bedeutung! Beim Dekodieren von Rohdatenströmen
(\fB\-\-format=raw\fP) wird die Filterkette in der gleichen Reihenfolge angegeben
wie bei der Kompression.
.PP
Filter akzeptieren filterspezifische \fIOptionen\fP in einer durch Kommata
getrennten Liste. Zusätzliche Kommata in den \fIOptionen\fP werden
ignoriert. Jede Option hat einen Standardwert, daher brauchen Sie nur jene
anzugeben, die Sie ändern wollen.
.PP
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
ist). Dies funktioniert auch zum Betrachten der von den Voreinstellungen
verwendeten Filterkettenoptionen.
.TP
\fB\-\-lzma1\fP[\fB=\fP\fIOptionen\fP]
.PD 0
.TP
\fB\-\-lzma2\fP[\fB=\fP\fIOptionen\fP]
.PD
fügt LZMA1\- oder LZMA2\-Filter zur Filterkette hinzu. Diese Filter können nur
als letzte Filter in der Kette verwendet werden.
.IP ""
LZMA1 ist ein veralteter Filter, welcher nur wegen des veralteten
\&\fB.lzma\fP\-Dateiformats unterstützt wird, welches nur LZMA1 unterstützt. LZMA2
ist eine aktualisierte Version von LZMA1, welche einige praktische Probleme
von LZMA1 behebt. Das \fB.xz\fP\-Format verwendet LZMA2 und unterstützt LZMA1
gar nicht. Kompressionsgeschwindigkeit und \-verhältnis sind bei LZMA1 und
LZMA2 praktisch gleich.
.IP ""
LZMA1 und LZMA2 haben die gleichen \fIOptionen\fP:
.RS
.TP
\fBpreset=\fP\fIVoreinstellung\fP
Reset all LZMA1 or LZMA2 \fIoptions\fP to \fIpreset\fP. \fIPreset\fP consist of an
integer, which may be followed by single\-letter preset modifiers. The
integer can be from \fB0\fP to \fB9\fP, matching the command line options \fB\-0\fP
\&...\& \fB\-9\fP. The only supported modifier is currently \fBe\fP, which matches
\fB\-\-extreme\fP. If no \fBpreset\fP is specified, the default values of LZMA1 or
LZMA2 \fIoptions\fP are taken from the preset \fB6\fP.
.TP
\fBdict=\fP\fIGröße\fP
Die \fIGröße\fP des Wörterbuchs (Chronikpuffers) gibt an, wie viel Byte der
kürzlich verarbeiteten unkomprimierten Daten im Speicher behalten werden
sollen. Der Algorithmus versucht, sich wiederholende Byte\-Abfolgen
(Übereinstimmungen) in den unkomprimierten Daten zu finden und diese durch
Referenzen zu den Daten zu ersetzen, die sich gegenwärtig im Wörterbuch
befinden. Je größer das Wörterbuch, umso größer ist die Chance, eine
Übereinstimmung zu finden. Daher bewirkt eine Erhöhung der \fIGröße\fP des
Wörterbuchs üblicherweise ein besseres Kompressionsverhältnis, aber ein
Wörterbuch, das größer ist als die unkomprimierte Datei, wäre
Speicherverschwendung.
.IP ""
Typische Wörterbuch\-\fIGrößen\fP liegen im Bereich von 64\ KiB bis 64\ MiB. Das
Minimum ist 4\ KiB. Das Maximum für die Kompression ist gegenwärtig 1.5\ GiB
(1536\ MiB). Bei der Dekompression wird bereits eine Wörterbuchgröße bis zu
4\ GiB minus 1 Byte unterstützt, welche das Maximum für die LZMA1\- und
LZMA2\-Datenstromformate ist.
.IP ""
Die \fIGröße\fP des Wörterbuchs und der Übereinstimmungsfinder (\fIÜf\fP)
bestimmen zusammen den Speicherverbrauch des LZMA1\- oder
LZMA2\-Kodierers. Bei der Dekompression ist ein Wörterbuch der gleichen
\fIGröße\fP (oder ein noch größeres) wie bei der Kompression erforderlich,
daher wird der Speicherverbrauch des Dekoders durch die Größe des bei der
Kompression verwendeten Wörterbuchs bestimmt. Die \fB.xz\fP\-Header speichern
die \fIGröße\fP des Wörterbuchs entweder als 2^\fIn\fP oder 2^\fIn\fP + 2^(\fIn\fP\-1),
so dass diese \fIGrößen\fP für die Kompression etwas bevorzugt werden. Andere
\fIGrößen\fP werden beim Speichern in den \fB.xz\fP\-Headern aufgerundet.
.TP
\fBlc=\fP\fIlc\fP
gibt die Anzahl der literalen Kontextbits an. Das Minimum ist 0 und das
Maximum 4; der Standardwert ist 3. Außerdem darf die Summe von \fIlc\fP und
\fIlp\fP nicht größer als 4 sein.
.IP ""
Alle Bytes, die nicht als Übereinstimmungen kodiert werden können, werden
als Literale kodiert. Solche Literale sind einfache 8\-bit\-Bytes, die jeweils
für sich kodiert werden.
.IP ""
The literal coding makes an assumption that the highest \fIlc\fP bits of the
previous uncompressed byte correlate with the next byte. For example, in
typical English text, an upper\-case letter is often followed by a lower\-case
letter, and a lower\-case letter is usually followed by another lower\-case
letter. In the US\-ASCII character set, the highest three bits are 010 for
upper\-case letters and 011 for lower\-case letters. When \fIlc\fP is at least
3, the literal coding can take advantage of this property in the
uncompressed data.
.IP ""
The default value (3) is usually good. If you want maximum compression,
test \fBlc=4\fP. Sometimes it helps a little, and sometimes it makes
compression worse. If it makes it worse, test \fBlc=2\fP too.
.TP
\fBlp=\fP\fIlp\fP
gibt die Anzahl der literalen Positionsbits an. Das Minimum ist 0 und das
Maximum 4; die Vorgabe ist 0.
.IP ""
\fILp\fP beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten beim
Kodieren von Literalen angenommen wird. Siehe \fIpb\fP weiter unten für weitere
Informationen zur Ausrichtung.
.TP
\fBpb=\fP\fIAnzahl\fP
legt die Anzahl der Positions\-Bits fest. Das Minimum ist 0 und das Maximum
4; Standard ist 2.
.IP ""
\fIPb\fP beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten
generell angenommen wird. Standardmäßig wird eine Vier\-Byte\-Ausrichtung
angenommen (2^\fIpb\fP=2^2=4), was oft eine gute Wahl ist, wenn es keine
bessere Schätzung gibt.
.IP ""
When the alignment is known, setting \fIpb\fP accordingly may reduce the file
size a little. For example, with text files having one\-byte alignment
(US\-ASCII, ISO\-8859\-*, UTF\-8), setting \fBpb=0\fP can improve compression
slightly. For UTF\-16 text, \fBpb=1\fP is a good choice. If the alignment is
an odd number like 3 bytes, \fBpb=0\fP might be the best choice.
.IP ""
Obwohl die angenommene Ausrichtung mit \fIpb\fP und \fIlp\fP angepasst werden
kann, bevorzugen LZMA1 und LZMA2 noch etwas die 16\-Byte\-Ausrichtung. Das
sollten Sie vielleicht beim Design von Dateiformaten berücksichtigen, die
wahrscheinlich oft mit LZMA1 oder LZMA2 komprimiert werden.
.TP
\fBmf=\fP\fIÜf\fP
Match finder has a major effect on encoder speed, memory usage, and
compression ratio. Usually Hash Chain match finders are faster than Binary
Tree match finders. The default depends on the \fIpreset\fP: 0 uses \fBhc3\fP,
1\(en3 use \fBhc4\fP, and the rest use \fBbt4\fP.
.IP ""
Die folgenden Übereinstimmungsfinder werden unterstützt. Die Formeln zur
Ermittlung des Speicherverbrauchs sind grobe Schätzungen, die der Realität
am nächsten kommen, wenn \fIWörterbuch\fP eine Zweierpotenz ist.
.RS
.TP
\fBhc3\fP
Hash\-Kette mit 2\- und 3\-Byte\-Hashing
.br
Minimalwert für \fInice\fP: 3
.br
Speicherbedarf:
.br
\fIdict\fP * 7,5 (falls \fIdict\fP <= 16 MiB);
.br
\fIdict\fP * 5,5 + 64 MiB (falls \fIdict\fP > 16 MiB)
.TP
\fBhc4\fP
Hash\-Kette mit 2\-, 3\- und 4\-Byte\-Hashing
.br
Minimaler Wert für \fInice\fP: 4
.br
Speicherbedarf:
.br
\fIdict\fP * 7,5 (falls \fIdict\fP <= 32 MiB ist);
.br
\fIdict\fP * 6,5 (falls \fIdict\fP > 32 MiB ist)
.TP
\fBbt2\fP
Binärbaum mit 2\-Byte\-Hashing
.br
Minimaler Wert für \fInice\fP: 2
.br
Speicherverbrauch: \fIdict\fP * 9.5
.TP
\fBbt3\fP
Binärbaum mit 2\- und 3\-Byte\-Hashing
.br
Minimalwert für \fInice\fP: 3
.br
Speicherbedarf:
.br
\fIdict\fP * 11,5 (falls \fIdict\fP <= 16 MiB ist);
.br
\fIdict\fP * 9,5 + 64 MiB (falls \fIdict\fP > 16 MiB ist)
.TP
\fBbt4\fP
Binärbaum mit 2\-, 3\- und 4\-Byte\-Hashing
.br
Minimaler Wert für \fInice\fP: 4
.br
Speicherbedarf:
.br
\fIdict\fP * 11,5 (falls \fIdict\fP <= 32 MiB ist);
.br
\fIdict\fP * 10,5 (falls \fIdict\fP > 32 MiB ist)
.RE
.TP
\fBmode=\fP\fIModus\fP
Compression \fImode\fP specifies the method to analyze the data produced by the
match finder. Supported \fImodes\fP are \fBfast\fP and \fBnormal\fP. The default is
\fBfast\fP for \fIpresets\fP 0\(en3 and \fBnormal\fP for \fIpresets\fP 4\(en9.
.IP ""
Üblicherweise wird \fBfast\fP mit Hashketten\-basierten Übereinstimmungsfindern
und \fBnormal\fP mit Binärbaum\-basierten Übereinstimmungsfindern verwendet. So
machen es auch die \fIVoreinstellungsstufen\fP.
.TP
\fBnice=\fP\fInice\fP
gibt an, was als annehmbarer Wert für eine Übereinstimmung angesehen werden
kann. Wenn eine Übereinstimmung gefunden wird, die mindestens diesen
\fInice\fP\-Wert hat, sucht der Algorithmus nicht weiter nach besseren
Übereinstimmungen.
.IP ""
\fINice\fP can be 2\(en273 bytes. Higher values tend to give better
compression ratio at the expense of speed. The default depends on the
\fIpreset\fP.
.TP
\fBdepth=\fP\fITiefe\fP
legt die maximale Suchtiefe im Übereinstimmungsfinder fest. Vorgegeben ist
der spezielle Wert 0, der den Kompressor veranlasst, einen annehmbaren Wert
für \fITiefe\fP aus \fIÜf\fP und \fInice\fP\-Wert zu bestimmen.
.IP ""
Reasonable \fIdepth\fP for Hash Chains is 4\(en100 and 16\(en1000 for Binary
Trees. Using very high values for \fIdepth\fP can make the encoder extremely
slow with some files. Avoid setting the \fIdepth\fP over 1000 unless you are
prepared to interrupt the compression in case it is taking far too long.
.RE
.IP ""
Beim Dekodieren von Rohdatenströmen (\fB\-\-format=raw\fP) benötigt LZMA2 nur die
Wörterbuch\-\fIGröße\fP. LZMA1 benötigt außerdem \fIlc\fP, \fIlp\fP und \fIpb\fP.
.TP
\fB\-\-x86\fP[\fB=\fP\fIOptionen\fP]
.PD 0
.TP
\fB\-\-powerpc\fP[\fB=\fP\fIOptionen\fP]
.TP
\fB\-\-ia64\fP[\fB=\fP\fIOptionen\fP]
.TP
\fB\-\-arm\fP[\fB=\fP\fIOptionen\fP]
.TP
\fB\-\-armthumb\fP[\fB=\fP\fIOptionen\fP]
.TP
\fB\-\-sparc\fP[\fB=\fP\fIOptionen\fP]
.PD
fügt ein »Branch/Call/Jump«\-(BCJ\-)Filter zur Filterkette hinzu. Diese Filter
können nicht als letzter Filter in der Filterkette verwendet werden.
.IP ""
A BCJ filter converts relative addresses in the machine code to their
absolute counterparts. This doesn't change the size of the data, but it
increases redundancy, which can help LZMA2 to produce 0\(en15\ % smaller
\&\fB.xz\fP file. The BCJ filters are always reversible, so using a BCJ filter
for wrong type of data doesn't cause any data loss, although it may make the
compression ratio slightly worse.
.IP ""
Es ist in Ordnung, einen BCJ\-Filter auf eine gesamte Binärdatei anzuwenden;
es ist nicht nötig, dies nur auf den binären Bereich zu beschränken. Die
Anwendung eines BCJ\-Filters auf ein Archiv, das sowohl binäre als auch
nicht\-binäre Dateien enthält, kann gute Ergebnisse liefern, muss es aber
nicht. Daher ist es generell nicht gut, einen BCJ\-Filter blindlings
anzuwenden, wenn Sie Binärpakete zwecks Weitergabe komprimieren wollen.
.IP ""
Diese BCJ\-Filter sind sehr schnell und erhöhen den Speicherbedarf nur
unerheblich. Wenn ein BCJ\-Filter das Kompressionsverhältnis einer Datei
verbessert, kann er auch gleichzeitig die Dekompressionsgeschwindigkeit
verbessern. Das kommt daher, dass auf der gleichen Hardware die
Dekompressionsgeschwindigkeit von LZMA2 ungefähr eine feste Anzahl Byte an
komprimierten Daten pro Sekunde ist.
.IP ""
Diese BCJ\-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:
.RS
.IP \(bu 3
Some types of files containing executable code (for example, object files,
static libraries, and Linux kernel modules) have the addresses in the
instructions filled with filler values. These BCJ filters will still do the
address conversion, which will make the compression worse with these files.
.IP \(bu 3
Bei der Anwendung eines BCJ\-Filters auf ein Archiv, das mehrere ähnliche
Binärdateien enthält, kann das Kompressionsverhältnis schlechter sein als
ohne BCJ\-Filter. Das kommt daher, weil der BCJ\-Filter die Grenzen der
Binärdateien nicht erkennt und den Zähler der Adressumwandlung für jede
Binärdatei nicht zurücksetzt.
.RE
.IP ""
Beide der oben genannten Probleme werden in der Zukunft in einem neuen
Filter nicht mehr auftreten. Die alten BCJ\-Filter werden noch in
eingebetteten Systemen von Nutzen sein, weil der Dekoder des neuen Filters
größer sein und mehr Speicher beanspruchen wird.
.IP ""
Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen:
.RS
.RS
.PP
.TS
tab(;);
l n l
l n l.
Filter;Ausrichtung;Hinweise
x86;1;32\-Bit oder 64\-Bit x86
PowerPC;4;Nur Big Endian
ARM;4;Nur Little Endian
ARM\-Thumb;2;Nur Little Endian
IA\-64;16;Big oder Little Endian
SPARC;4;Big oder Little Endian
.TE
.RE
.RE
.IP ""
Da die BCJ\-gefilterten Daten üblicherweise mit LZMA2 komprimiert sind, kann
das Kompressionsverhältnis dadurch etwas verbessert werden, dass die
LZMA2\-Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten
BCJ\-Filters entsprechen. Zum Beispiel ist es beim IA\-64\-Filter eine gute
Wahl, \fBpb=4\fP mit LZMA2 zu setzen (2^4=16). Der x86\-Filter bildet dabei eine
Ausnahme; Sie sollten bei der für LZMA2 voreingestellten 4\-Byte\-Ausrichtung
bleiben, wenn Sie x86\-Binärdateien komprimieren.
.IP ""
Alle BCJ\-Filter unterstützen die gleichen \fIOptionen\fP:
.RS
.TP
\fBstart=\fP\fIVersatz\fP
gibt den Start\-\fIVersatz\fP an, der bei der Umwandlung zwischen relativen und
absoluten Adressen verwendet wird. Der \fIVersatz\fP muss ein Vielfaches der
Filterausrichtung sein (siehe die Tabelle oben). Der Standardwert ist 0. In
der Praxis ist dieser Standardwert gut; die Angabe eines benutzerdefinierten
\fIVersatzes\fP ist fast immer unnütz.
.RE
.TP
\fB\-\-delta\fP[\fB=\fP\fIOptionen\fP]
fügt den Delta\-Filter zur Filterkette hinzu. Der Delta\-Filter kann nicht als
letzter Filter in der Filterkette verwendet werden.
.IP ""
Currently only simple byte\-wise delta calculation is supported. It can be
useful when compressing, for example, uncompressed bitmap images or
uncompressed PCM audio. However, special purpose algorithms may give
significantly better results than Delta + LZMA2. This is true especially
with audio, which compresses faster and better, for example, with
\fBflac\fP(1).
.IP ""
Unterstützte \fIOptionen\fP:
.RS
.TP
\fBdist=\fP\fIAbstand\fP
Specify the \fIdistance\fP of the delta calculation in bytes. \fIdistance\fP must
be 1\(en256. The default is 1.
.IP ""
Zum Beispiel wird mit \fBdist=2\fP und der 8\-Byte\-Eingabe A1 B1 A2 B3 A3 B5 A4
B7 die Ausgabe A1 B1 01 02 01 02 01 02 sein.
.RE
.
.SS "Andere Optionen"
.TP
\fB\-q\fP, \fB\-\-quiet\fP
unterdrückt Warnungen und Hinweise. Geben Sie dies zweimal an, um auch
Fehlermeldungen zu unterdrücken. Diese Option wirkt sich nicht auf den
Exit\-Status aus. Das bedeutet, das selbst bei einer unterdrückten Warnung
der Exit\-Status zur Anzeige einer Warnung dennoch verwendet wird.
.TP
\fB\-v\fP, \fB\-\-verbose\fP
bewirkt ausführliche Ausgaben. Wenn die Standardfehlerausgabe mit einem
Terminal verbunden ist, zeigt \fBxz\fP den Fortschritt an. Durch zweimalige
Angabe von \fB\-\-verbose\fP wird die Ausgabe noch ausführlicher.
.IP ""
Der Fortschrittsanzeiger stellt die folgenden Informationen dar:
.RS
.IP \(bu 3
Der Prozentsatz des Fortschritts wird angezeigt, wenn die Größe der
Eingabedatei bekannt ist. Das bedeutet, dass der Prozentsatz in
Weiterleitungen (Pipes) nicht angezeigt werden kann.
.IP \(bu 3
Menge der erzeugten komprimierten Daten (bei der Kompression) oder der
verarbeiteten Daten (bei der Dekompression).
.IP \(bu 3
Menge der verarbeiteten unkomprimierten Daten (bei der Kompression) oder der
erzeugten Daten (bei der Dekompression).
.IP \(bu 3
Kompressionsverhältnis, das mittels Dividieren der Menge der bisher
komprimierten Daten durch die Menge der bisher verarbeiteten unkomprimierten
Daten ermittelt wird.
.IP \(bu 3
Kompressions\- oder Dekompressionsgeschwindigkeit. Diese wird anhand der
Menge der unkomprimierten verarbeiteten Daten (bei der Kompression) oder der
Menge der erzeugten Daten (bei der Dekompression) pro Sekunde gemessen. Die
Anzeige startet einige Sekunden nachdem \fBxz\fP mit der Verarbeitung der Datei
begonnen hat.
.IP \(bu 3
Die vergangene Zeit im Format M:SS oder H:MM:SS.
.IP \(bu 3
Estimated remaining time is shown only when the size of the input file is
known and a couple of seconds have already passed since \fBxz\fP started
processing the file. The time is shown in a less precise format which never
has any colons, for example, 2 min 30 s.
.RE
.IP ""
When standard error is not a terminal, \fB\-\-verbose\fP will make \fBxz\fP print
the filename, compressed size, uncompressed size, compression ratio, and
possibly also the speed and elapsed time on a single line to standard error
after compressing or decompressing the file. The speed and elapsed time are
included only when the operation took at least a few seconds. If the
operation didn't finish, for example, due to user interruption, also the
completion percentage is printed if the size of the input file is known.
.TP
\fB\-Q\fP, \fB\-\-no\-warn\fP
setzt den Exit\-Status nicht auf 2, selbst wenn eine Bedingung erfüllt ist,
die eine Warnung gerechtfertigt hätte. Diese Option wirkt sich nicht auf die
Ausführlichkeitsstufe aus, daher müssen sowohl \fB\-\-quiet\fP als auch
\fB\-\-no\-warn\fP angegeben werden, um einerseits keine Warnungen anzuzeigen und
andererseits auch den Exit\-Status nicht zu ändern.
.TP
\fB\-\-robot\fP
gibt Meldungen in einem maschinenlesbaren Format aus. Dadurch soll das
Schreiben von Frontends erleichtert werden, die \fBxz\fP anstelle von Liblzma
verwenden wollen, was in verschiedenen Skripten der Fall sein kann. Die
Ausgabe mit dieser aktivierten Option sollte über mehrere
\fBxz\fP\-Veröffentlichungen stabil sein. Details hierzu finden Sie im Abschnitt
\fBROBOTER\-MODUS\fP.
.TP
\fB\-\-info\-memory\fP
zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM)
das System nach Annahme von \fBxz\fP hat, sowie die Speicherbedarfsbegrenzung
für Kompression und Dekompression, und beendet das Programm erfolgreich.
.TP
\fB\-h\fP, \fB\-\-help\fP
zeigt eine Hilfemeldung mit den am häufigsten genutzten Optionen an und
beendet das Programm erfolgreich.
.TP
\fB\-H\fP, \fB\-\-long\-help\fP
zeigt eine Hilfemeldung an, die alle Funktionsmerkmale von \fBxz\fP beschreibt
und beendet das Programm erfolgreich.
.TP
\fB\-V\fP, \fB\-\-version\fP
zeigt die Versionsnummer von \fBxz\fP und Liblzma in einem menschenlesbaren
Format an. Um eine maschinell auswertbare Ausgabe zu erhalten, geben Sie
\fB\-\-robot\fP vor \fB\-\-version\fP an.
.
.SH ROBOTER\-MODUS
Der Roboter\-Modus wird mit der Option \fB\-\-robot\fP aktiviert. Er bewirkt, dass
die Ausgabe von \fBxz\fP leichter von anderen Programmen ausgewertet werden
kann. Gegenwärtig wird \fB\-\-robot\fP nur zusammen mit \fB\-\-version\fP,
\fB\-\-info\-memory\fP und \fB\-\-list\fP unterstützt. In der Zukunft wird dieser Modus
auch für Kompression und Dekompression unterstützt.
.
.SS Version
\fBxz \-\-robot \-\-version\fP gibt die Versionsnummern von \fBxz\fP und Liblzma im
folgenden Format aus:
.PP
\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
.br
\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
.TP
\fIX\fP
Hauptversion.
.TP
\fIYYY\fP
Unterversion. Gerade Zahlen bezeichnen eine stabile Version. Ungerade Zahlen
bezeichnen Alpha\- oder Betaversionen.
.TP
\fIZZZ\fP
Patch\-Stufe für stabile Veröffentlichungen oder einfach nur ein Zähler für
Entwicklungsversionen.
.TP
\fIS\fP
Stabilität. 0 ist Alpha, 1 ist Beta und 2 ist stabil. \fIS\fP sollte immer 2
sein, wenn \fIYYY\fP eine gerade Zahl ist.
.PP
\fIXYYYZZZS\fP sind in beiden Zeilen gleich, sofern \fBxz\fP und Liblzma aus der
gleichen Veröffentlichung der XZ\-Utils stammen.
.PP
Beispiele: 4.999.9beta ist \fB49990091\fP und 5.0.0 is \fB50000002\fP.
.
.SS "Informationen zur Speicherbedarfsbegrenzung"
\fBxz \-\-robot \-\-info\-memory\fP gibt eine einzelne Zeile mit drei durch
Tabulatoren getrennten Spalten aus:
.IP 1. 4
Gesamter physischer Speicher (RAM) in Byte
.IP 2. 4
Speicherbedarfsbegrenzung für die Kompression in Byte. Ein spezieller Wert
von Null bezeichnet die Standardeinstellung, die im Einzelthread\-Modus
bedeutet, dass keine Begrenzung vorhanden ist.
.IP 3. 4
Speicherbedarfsbegrenzung für die Dekompression in Byte. Ein spezieller Wert
von Null bezeichnet die Standardeinstellung, die im Einzelthread\-Modus
bedeutet, dass keine Begrenzung vorhanden ist.
.PP
In der Zukunft könnte die Ausgabe von \fBxz \-\-robot \-\-info\-memory\fP weitere
Spalten enthalten, aber niemals mehr als eine einzelne Zeile.
.
.SS Listenmodus
\fBxz \-\-robot \-\-list\fP verwendet eine durch Tabulatoren getrennte Ausgabe. In
der ersten Spalte jeder Zeile bezeichnet eine Zeichenkette den Typ der
Information, die in dieser Zeile enthalten ist:
.TP
\fBname\fP
Dies ist stets die erste Zeile, wenn eine Datei aufgelistet wird. Die zweite
Spalte in der Zeile enthält den Dateinamen.
.TP
\fBfile\fP
Diese Zeile enthält allgemeine Informationen zur \fB.xz\fP\-Datei. Diese Zeile
wird stets nach der \fBname\fP\-Zeile ausgegeben.
.TP
\fBstream\fP
Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP angegeben wurde. Es
gibt genau so viele \fBstream\fP\-Zeilen, wie Datenströme in der \fB.xz\fP\-Datei
enthalten sind.
.TP
\fBblock\fP
Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP angegeben wurde. Es
gibt so viele \fBblock\fP\-Zeilen, wie Blöcke in der \fB.xz\fP\-Datei. Die
\fBblock\fP\-Zeilen werden nach allen \fBstream\fP\-Zeilen angezeigt; verschiedene
Zeilentypen werden nicht verschachtelt.
.TP
\fBsummary\fP
Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP zwei Mal angegeben
wurde. Diese Zeile wird nach allen \fBblock\fP\-Zeilen ausgegeben. Wie die
\fBfile\fP\-Zeile enthält die \fBsummary\fP\-Zeile allgemeine Informationen zur
\&\fB.xz\fP\-Datei.
.TP
\fBtotals\fP
Diese Zeile ist immer die letzte der Listenausgabe. Sie zeigt die
Gesamtanzahlen und \-größen an.
.PP
Die Spalten der \fBfile\fP\-Zeilen:
.PD 0
.RS
.IP 2. 4
Anzahl der Datenströme in der Datei
.IP 3. 4
Gesamtanzahl der Blöcke in den Datenströmen
.IP 4. 4
Komprimierte Größe der Datei
.IP 5. 4
Unkomprimierte Größe der Datei
.IP 6. 4
Compression ratio, for example, \fB0.123\fP. If ratio is over 9.999, three
dashes (\fB\-\-\-\fP) are displayed instead of the ratio.
.IP 7. 4
Durch Kommata getrennte Liste der Namen der Integritätsprüfungen. Für die
bekannten Überprüfungstypen werden folgende Zeichenketten verwendet:
\fBNone\fP, \fBCRC32\fP, \fBCRC64\fP und \fBSHA\-256\fP. \fBUnbek.\fP\fIN\fP wird verwendet,
wobei \fIN\fP die Kennung der Überprüfung als Dezimalzahl angibt (ein\- oder
zweistellig).
.IP 8. 4
Gesamtgröße der Datenstromauffüllung in der Datei
.RE
.PD
.PP
Die Spalten der \fBstream\fP\-Zeilen:
.PD 0
.RS
.IP 2. 4
Datenstromnummer (der erste Datenstrom ist 1)
.IP 3. 4
Anzahl der Blöcke im Datenstrom
.IP 4. 4
Komprimierte Startposition
.IP 5. 4
Unkomprimierte Startposition
.IP 6. 4
Komprimierte Größe (schließt die Datenstromauffüllung nicht mit ein)
.IP 7. 4
Unkomprimierte Größe
.IP 8. 4
Kompressionsverhältnis
.IP 9. 4
Name der Integritätsprüfung
.IP 10. 4
Größe der Datenstromauffüllung
.RE
.PD
.PP
Die Spalten der \fBblock\fP\-Zeilen:
.PD 0
.RS
.IP 2. 4
Anzahl der in diesem Block enthaltenen Datenströme
.IP 3. 4
Blocknummer relativ zum Anfang des Datenstroms (der erste Block ist 1)
.IP 4. 4
Blocknummer relativ zum Anfang der Datei
.IP 5. 4
Komprimierter Startversatz relativ zum Beginn der Datei
.IP 6. 4
Unkomprimierter Startversatz relativ zum Beginn der Datei
.IP 7. 4
Komprimierte Gesamtgröße des Blocks (einschließlich Header)
.IP 8. 4
Unkomprimierte Größe
.IP 9. 4
Kompressionsverhältnis
.IP 10. 4
Name der Integritätsprüfung
.RE
.PD
.PP
Wenn \fB\-\-verbose\fP zwei Mal angegeben wurde, werden zusätzliche Spalten in
die \fBblock\fP\-Zeilen eingefügt. Diese werden mit einem einfachen \fB\-\-verbose\fP
nicht angezeigt, da das Ermitteln dieser Informationen viele Suchvorgänge
erfordert und daher recht langsam sein kann:
.PD 0
.RS
.IP 11. 4
Wert der Integritätsprüfung in hexadezimaler Notation
.IP 12. 4
Block\-Header\-Größe
.IP 13. 4
Block\-Schalter: \fBc\fP gibt an, dass die komprimierte Größe verfügbar ist, und
\fBu\fP gibt an, dass die unkomprimierte Größe verfügbar ist. Falls der
Schalter nicht gesetzt ist, wird stattdessen ein Bindestrich (\fB\-\fP)
angezeigt, um die Länge der Zeichenkette beizubehalten. In Zukunft könnten
neue Schalter am Ende der Zeichenkette hinzugefügt werden.
.IP 14. 4
Größe der tatsächlichen komprimierten Daten im Block. Ausgeschlossen sind
hierbei die Block\-Header, die Blockauffüllung und die Prüffelder.
.IP 15. 4
Größe des Speichers (in Byte), der zum Dekomprimieren dieses Blocks mit
dieser \fBxz\fP\-Version benötigt wird.
.IP 16. 4
Filterkette. Beachten Sie, dass die meisten der bei der Kompression
verwendeten Optionen nicht bekannt sein können, da in den \fB.xz\fP\-Headern nur
die für die Dekompression erforderlichen Optionen gespeichert sind.
.RE
.PD
.PP
Die Spalten der \fBsummary\fP\-Zeilen:
.PD 0
.RS
.IP 2. 4
Größe des Speichers (in Byte), der zum Dekomprimieren dieser Datei mit
dieser \fBxz\fP\-Version benötigt wird.
.IP 3. 4
\fByes\fP oder \fBno\fP geben an, ob in allen Block\-Headern sowohl die
komprimierte als auch die unkomprimierte Größe gespeichert ist.
.PP
\fISeit\fP \fBxz\fP \fI5.1.2alpha:\fP
.IP 4. 4
Minimale \fBxz\fP\-Version, die zur Dekompression der Datei erforderlich ist
.RE
.PD
.PP
Die Spalten der \fBtotals\fP\-Zeile:
.PD 0
.RS
.IP 2. 4
Anzahl der Datenströme
.IP 3. 4
Anzahl der Blöcke
.IP 4. 4
Komprimierte Größe
.IP 5. 4
Unkomprimierte Größe
.IP 6. 4
Durchschnittliches Kompressionsverhältnis
.IP 7. 4
Durch Kommata getrennte Liste der Namen der Integritätsprüfungen, die in den
Dateien präsent waren.
.IP 8. 4
Größe der Datenstromauffüllung
.IP 9. 4
Anzahl der Dateien. Dies dient dazu, die Reihenfolge der vorigen Spalten an
die in den \fBfile\fP\-Zeilen anzugleichen.
.PD
.RE
.PP
Wenn \fB\-\-verbose\fP zwei Mal angegeben wird, werden zusätzliche Spalten in die
\fBtotals\fP\-Zeile eingefügt:
.PD 0
.RS
.IP 10. 4
Maximale Größe des Speichers (in Byte), der zum Dekomprimieren der Dateien
mit dieser \fBxz\fP\-Version benötigt wird.
.IP 11. 4
\fByes\fP oder \fBno\fP geben an, ob in allen Block\-Headern sowohl die
komprimierte als auch die unkomprimierte Größe gespeichert ist.
.PP
\fISeit\fP \fBxz\fP \fI5.1.2alpha:\fP
.IP 12. 4
Minimale \fBxz\fP\-Version, die zur Dekompression der Datei erforderlich ist
.RE
.PD
.PP
Zukünftige Versionen könnten neue Zeilentypen hinzufügen, weiterhin könnten
auch in den vorhandenen Zeilentypen weitere Spalten hinzugefügt werden, aber
die existierenden Spalten werden nicht geändert.
.
.SH EXIT\-STATUS
.TP
\fB0\fP
Alles ist in Ordnung.
.TP
\fB1\fP
Ein Fehler ist aufgetreten.
.TP
\fB2\fP
Es ist etwas passiert, das eine Warnung rechtfertigt, aber es sind keine
tatsächlichen Fehler aufgetreten.
.PP
In die Standardausgabe geschriebene Hinweise (keine Warnungen oder Fehler),
welche den Exit\-Status nicht beeinflussen.
.
.SH UMGEBUNGSVARIABLEN
\fBxz\fP wertet eine durch Leerzeichen getrennte Liste von Optionen in den
Umgebungsvariablen \fBXZ_DEFAULTS\fP und \fBXZ_OPT\fP aus (in dieser Reihenfolge),
bevor die Optionen aus der Befehlszeile ausgewertet werden. Beachten Sie,
dass beim Auswerten der Umgebungsvariablen nur Optionen berücksichtigt
werden; alle Einträge, die keine Optionen sind, werden stillschweigend
ignoriert. Die Auswertung erfolgt mit \fBgetopt_long\fP(3), welches auch für
die Befehlszeilenargumente verwendet wird.
.TP
\fBXZ_DEFAULTS\fP
Benutzerspezifische oder systemweite Standardoptionen. Typischerweise werden
diese in einem Shell\-Initialisierungsskript gesetzt, um die
Speicherbedarfsbegrenzung von \fBxz\fP standardmäßig zu aktivieren. Außer bei
Shell\-Initialisierungsskripten und in ähnlichen Spezialfällen darf die
Variable \fBXZ_DEFAULTS\fP in Skripten niemals gesetzt oder außer Kraft gesetzt
werden.
.TP
\fBXZ_OPT\fP
This is for passing options to \fBxz\fP when it is not possible to set the
options directly on the \fBxz\fP command line. This is the case when \fBxz\fP is
run by a script or tool, for example, GNU \fBtar\fP(1):
.RS
.RS
.PP
.nf
\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
.fi
.RE
.RE
.IP ""
Scripts may use \fBXZ_OPT\fP, for example, to set script\-specific default
compression options. It is still recommended to allow users to override
\fBXZ_OPT\fP if that is reasonable. For example, in \fBsh\fP(1) scripts one may
use something like this:
.RS
.RS
.PP
.nf
\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
.fi
.RE
.RE
.
.SH "KOMPATIBILITÄT ZU DEN LZMA\-UTILS"
Die Befehlszeilensyntax von \fBxz\fP ist praktisch eine Obermenge der von
\fBlzma\fP, \fBunlzma\fP und \fBlzcat\fP in den LZMA\-Utils der Versionen 4.32.x. In
den meisten Fällen sollte es möglich sein, die LZMA\-Utils durch die XZ\-Utils
zu ersetzen, ohne vorhandene Skripte ändern zu müssen. Dennoch gibt es
einige Inkompatibilitäten, die manchmal Probleme verursachen können.
.
.SS "Voreinstellungsstufen zur Kompression"
Die Nummerierung der Voreinstellungsstufen der Kompression ist in \fBxz\fP und
den LZMA\-Utils unterschiedlich. Der wichtigste Unterschied ist die Zuweisung
der Wörterbuchgrößen zu den verschiedenen Voreinstellungsstufen. Die
Wörterbuchgröße ist etwa gleich dem Speicherbedarf bei der Dekompression.
.RS
.PP
.TS
tab(;);
c c c
c n n.
Stufe;xz;LZMA\-Utils
\-0;256 KiB;nicht verfügbar
\-1;1 MiB;64 KiB
\-2;2 MiB;1 MiB
\-3;4 MiB;512 KiB
\-4;4 MiB;1 MiB
\-5;8 MiB;2 MiB
\-6;8 MiB;4 MiB
\-7;16 MiB;8 MiB
\-8;32 MiB;16 MiB
\-9;64 MiB;32 MiB
.TE
.RE
.PP
Die Unterschiede in der Wörterbuchgröße beeinflussen auch den Speicherbedarf
bei der Kompression, aber es gibt noch einige andere Unterschiede zwischen
den LZMA\-Utils und den XZ\-Utils, die die Kluft noch vergrößern:
.RS
.PP
.TS
tab(;);
c c c
c n n.
Stufe;xz;LZMA\-Utils 4.32.x
\-0;3 MiB;nicht verfügbar
\-1;9 MiB;2 MiB
\-2;17 MiB;12 MiB
\-3;32 MiB;12 MiB
\-4;48 MiB;16 MiB
\-5;94 MiB;26 MiB
\-6;94 MiB;45 MiB
\-7;186 MiB;83 MiB
\-8;370 MiB;159 MiB
\-9;674 MiB;311 MiB
.TE
.RE
.PP
Die standardmäßige Voreinstellungsstufe in den LZMA\-Utils ist \fB\-7\fP, während
diese in den XZ\-Utils \fB\-6\fP ist, daher verwenden beide standardmäßig ein 8
MiB großes Wörterbuch.
.
.SS "Vor\- und Nachteile von .lzma\-Dateien als Datenströme"
The uncompressed size of the file can be stored in the \fB.lzma\fP header.
LZMA Utils does that when compressing regular files. The alternative is to
mark that uncompressed size is unknown and use end\-of\-payload marker to
indicate where the decompressor should stop. LZMA Utils uses this method
when uncompressed size isn't known, which is the case, for example, in
pipes.
.PP
\fBxz\fP unterstützt die Dekompression von \fB.lzma\fP\-Dateien mit oder ohne
Nutzdatenende\-Markierung, aber alle von \fBxz\fP erstellten \fB.lzma\fP\-Dateien
verwenden diesen Nutzdatenende\-Markierung, wobei die unkomprimierte Größe in
den \fB.lzma\fP\-Headern als unbekannt markiert wird. Das könnte in einigen
unüblichen Situationen ein Problem sein. Zum Beispiel könnte ein
\&\fB.lzma\fP\-Dekompressor in einem Gerät mit eingebettetem System nur mit
Dateien funktionieren, deren unkomprimierte Größe bekannt ist. Falls Sie auf
dieses Problem stoßen, müssen Sie die LZMA\-Utils oder das LZMA\-SDK
verwenden, um \fB.lzma\fP\-Dateien mit bekannter unkomprimierter Größe zu
erzeugen.
.
.SS "Nicht unterstützte .lzma\-Dateien"
Das \fB.lzma\fP\-Format erlaubt \fIlc\fP\-Werte bis zu 8 und \fIlp\fP\-Werte bis zu
4. Die LZMA\-Utils können Dateien mit beliebigem \fIlc\fP und \fIlp\fP
dekomprimieren, aber erzeugen immer Dateien mit \fBlc=3\fP und \fBlp=0\fP. Das
Erzeugen von Dateien mit anderem \fIlc\fP und \fIlp\fP ist mit \fBxz\fP und mit dem
LZMA\-SDK möglich.
.PP
Die Implementation des LZMA\-Filters in liblzma setzt voraus, dass die Summe
von \fIlc\fP und \fIlp\fP nicht größer als 4 ist. Daher können \fB.lzma\fP\-Dateien,
welche diese Begrenzung überschreiten, mit \fBxz\fP nicht dekomprimiert werden.
.PP
Die LZMA\-Utils erzeugen nur \fB.lzma\fP\-Dateien mit einer Wörterbuchgröße von
2^\fIn\fP (einer Zweierpotenz), aber akzeptieren Dateien mit einer beliebigen
Wörterbuchgröße. Liblzma akzeptiert nur \fB.lzma\fP\-Dateien mit einer
Wörterbuchgröße von 2^\fIn\fP oder 2^\fIn\fP + 2^(\fIn\fP\-1). Dies dient zum
Verringern von Fehlalarmen beim Erkennen von \fB.lzma\fP\-Dateien.
.PP
Diese Einschränkungen sollten in der Praxis kein Problem sein, da praktisch
alle \fB.lzma\fP\-Dateien mit Einstellungen komprimiert wurden, die Liblzma
akzeptieren wird.
.
.SS "Angehängter Datenmüll"
Bei der Dekompression ignorieren die LZMA\-Utils stillschweigend alles nach
dem ersten \fB.lzma\fP\-Datenstrom. In den meisten Situationen ist das ein
Fehler. Das bedeutet auch, dass die LZMA\-Utils die Dekompression verketteter
\&\fB.lzma\fP\-Dateien nicht unterstützen.
.PP
Wenn nach dem ersten \fB.lzma\fP\-Datenstrom Daten verbleiben, erachtet \fBxz\fP
die Datei als beschädigt, es sei denn, die Option \fB\-\-single\-stream\fP wurde
verwendet. Dies könnte die Ausführung von Skripten beeinflussen, die davon
ausgehen, dass angehängter Datenmüll ignoriert wird.
.
.SH ANMERKUNGEN
.
.SS "Die komprimierte Ausgabe kann variieren"
Die exakte komprimierte Ausgabe, die aus der gleichen unkomprimierten
Eingabedatei erzeugt wird, kann zwischen den Versionen der XZ\-Utils
unterschiedlich sein, selbst wenn die Kompressionsoptionen identisch
sind. Das kommt daher, weil der Kodierer verbessert worden sein könnte
(hinsichtlich schnellerer oder besserer Kompression), ohne das Dateiformat
zu beeinflussen. Die Ausgabe kann sogar zwischen verschiedenen Programmen
der gleichen Version der XZ\-Utils variieren, wenn bei der Erstellung des
Binärprogramms unterschiedliche Optionen verwendet wurden.
.PP
Sobald \fB\-\-rsyncable\fP implementiert wurde, bedeutet das, dass die sich
ergebenden Dateien nicht notwendigerweise mit Rsync abgeglichen werden
können, außer wenn die alte und neue Datei mit der gleichen \fBxz\fP\-Version
erzeugt wurden. Das Problem kann beseitigt werden, wenn ein Teil der
Encoder\-Implementierung eingefroren wird, um die mit Rsync abgleichbare
Ausgabe über \fBxz\fP\-Versionsgrenzen hinweg stabil zu halten.
.
.SS "Eingebettete .xz\-Dekompressoren"
Eingebettete \fB.xz\fP\-Dekompressor\-Implementierungen wie XZ Embedded
unterstützen nicht unbedingt Dateien, die mit anderen Integritätsprüfungen
(\fIPrüfung\fP\-Typen) als \fBnone\fP und \fBcrc32\fP erzeugt wurden. Da
\fB\-\-check=crc64\fP die Voreinstellung ist, müssen Sie \fB\-\-check=none\fP oder
\fB\-\-check=crc32\fP verwenden, wenn Sie Dateien für eingebettete Systeme
erstellen.
.PP
Außerhalb eingebetteter Systeme unterstützen die Dekompressoren des
\&\fB.xz\fP\-Formats alle \fIPrüfung\fP\-Typen oder sind mindestens in der Lage, die
Datei zu dekomprimieren, ohne deren Integrität zu prüfen, wenn die bestimmte
\fIPrüfung\fP nicht verfügbar ist.
.PP
XZ Embedded unterstützt BCJ\-Filter, aber nur mit dem vorgegebenen
Startversatz.
.
.SH BEISPIELE
.
.SS Grundlagen
Komprimiert die Datei \fIfoo\fP mit der Standard\-Kompressionsstufe (\fB\-6\fP) zu
\fIfoo.xz\fP und entfernt \fIfoo\fP nach erfolgreicher Kompression:
.RS
.PP
.nf
\f(CWxz foo\fP
.fi
.RE
.PP
\fIbar.xz\fP in \fIbar\fP dekomprimieren und \fIbar.xz\fP selbst dann nicht löschen,
wenn die Dekompression erfolgreich war:
.RS
.PP
.nf
\f(CWxz \-dk bar.xz\fP
.fi
.RE
.PP
Create \fIbaz.tar.xz\fP with the preset \fB\-4e\fP (\fB\-4 \-\-extreme\fP), which is
slower than the default \fB\-6\fP, but needs less memory for compression and
decompression (48\ MiB and 5\ MiB, respectively):
.RS
.PP
.nf
\f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP
.fi
.RE
.PP
Eine Mischung aus komprimierten und unkomprimierten Dateien kann mit einem
einzelnen Befehl dekomprimiert in die Standardausgabe geschrieben werden:
.RS
.PP
.nf
\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
.fi
.RE
.
.SS "Parallele Kompression von vielen Dateien"
Auf GNU\- und *BSD\-Systemen können \fBfind\fP(1) und \fBxargs\fP(1) zum
Parallelisieren der Kompression vieler Dateien verwendet werden:
.RS
.PP
.nf
\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP
.fi
.RE
.PP
Die Option \fB\-P\fP von \fBxargs\fP(1) legt die Anzahl der parallelen
\fBxz\fP\-Prozesse fest. Der beste Wert für die Option \fB\-n\fP hängt davon ab, wie
viele Dateien komprimiert werden sollen. Wenn es sich nur um wenige Dateien
handelt, sollte der Wert wahrscheinlich 1 sein; bei Zehntausenden von
Dateien kann 100 oder noch mehr angemessener sein, um die Anzahl der
\fBxz\fP\-Prozesse zu beschränken, die \fBxargs\fP(1) schließlich erzeugen wird.
.PP
Die Option \fB\-T1\fP für \fBxz\fP dient dazu, den Einzelthread\-Modus zu erzwingen,
da \fBxargs\fP(1) zur Steuerung des Umfangs der Parallelisierung verwendet
wird.
.
.SS Roboter\-Modus
Berechnen, wie viel Byte nach der Kompression mehrerer Dateien insgesamt
eingespart wurden:
.RS
.PP
.nf
\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
.fi
.RE
.PP
Ein Skript könnte abfragen wollen, ob es ein \fBxz\fP verwendet, das aktuell
genug ist. Das folgende \fBsh\fP(1)\-Skript prüft, ob die Versionsnummer des
Dienstprogramms \fBxz\fP mindestens 5.0.0 ist. Diese Methode ist zu alten
Beta\-Versionen kompatibel, welche die Option \fB\-\-robot\fP nicht unterstützen:
.RS
.PP
.nf
\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Ihre Version von Xz ist zu alt." fi unset XZ_VERSION LIBLZMA_VERSION\fP
.fi
.RE
.PP
Eine Speicherbedarfsbegrenzung für die Dekompression mit \fBXZ_OPT\fP setzen,
aber eine bereits gesetzte Begrenzung nicht erhöhen:
.RS
.PP
.nf
\f(CWNEWLIM=$((123 << 20))\ \ # 123 MiB OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3) if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM" export XZ_OPT fi\fP
.fi
.RE
.
.SS "Benutzerdefinierte Filterketten für die Kompression"
Der einfachste Anwendungsfall für benutzerdefinierte Filterketten ist die
Anpassung von LZMA2\-Voreinstellungsstufen. Das kann nützlich sein, weil die
Voreinstellungen nur einen Teil der potenziell sinnvollen Kombinationen aus
Kompressionseinstellungen abdecken.
.PP
Die KompCPU\-Spalten der Tabellen aus den Beschreibungen der Optionen \fB\-0\fP …
\fB\-9\fP und \fB\-\-extreme\fP sind beim Anpassen der LZMA2\-Voreinstellungen
nützlich. Diese sind die relevanten Teile aus diesen zwei Tabellen:
.RS
.PP
.TS
tab(;);
c c
n n.
Voreinstellung;KompCPU
\-0;0
\-1;1
\-2;2
\-3;3
\-4;4
\-5;5
\-6;6
\-5e;7
\-6e;8
.TE
.RE
.PP
If you know that a file requires somewhat big dictionary (for example, 32\ MiB) to compress well, but you want to compress it quicker than \fBxz \-8\fP
would do, a preset with a low CompCPU value (for example, 1) can be
modified to use a bigger dictionary:
.RS
.PP
.nf
\f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP
.fi
.RE
.PP
Mit bestimmten Dateien kann der obige Befehl schneller sein als \fBxz \-6\fP,
wobei die Kompression deutlich besser wird. Dennoch muss betont werden, dass
nur wenige Dateien von einem größeren Wörterbuch profitieren, wenn der
KompCPU\-Wert niedrig bleibt. Der offensichtlichste Fall, in dem ein größeres
Wörterbuch sehr hilfreich sein kann, ist ein Archiv, das einander sehr
ähnliche Dateien enthält, die jeweils wenigstens einige Megabyte groß
sind. Das Wörterbuch muss dann deutlich größer sein als die einzelne Datei,
damit LZMA2 den größtmöglichen Vorteil aus den Ähnlichkeiten der aufeinander
folgenden Dateien zieht.
.PP
Wenn hoher Speicherbedarf für Kompression und Dekompression kein Problem ist
und die zu komprimierende Datei mindestens einige Hundert Megabyte groß ist,
kann es sinnvoll sein, ein noch größeres Wörterbuch zu verwenden, als die 64
MiB, die mit \fBxz \-9\fP verwendet werden würden:
.RS
.PP
.nf
\f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP
.fi
.RE
.PP
Die Verwendung von \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) wie im obigen Beispiel
kann nützlich sein, um den Speicherbedarf für Kompressor und Dekompressor zu
sehen. Denken Sie daran, dass ein Wörterbuch, das größer als die
unkomprimierte Datei ist, Speicherverschwendung wäre. Daher ist der obige
Befehl für kleine Dateien nicht sinnvoll.
.PP
Sometimes the compression time doesn't matter, but the decompressor memory
usage has to be kept low, for example, to make it possible to decompress the
file on an embedded system. The following command uses \fB\-6e\fP (\fB\-6 \-\-extreme\fP) as a base and sets the dictionary to only 64\ KiB. The
resulting file can be decompressed with XZ Embedded (that's why there is
\fB\-\-check=crc32\fP) using about 100\ KiB of memory.
.RS
.PP
.nf
\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP
.fi
.RE
.PP
If you want to squeeze out as many bytes as possible, adjusting the number
of literal context bits (\fIlc\fP) and number of position bits (\fIpb\fP) can
sometimes help. Adjusting the number of literal position bits (\fIlp\fP)
might help too, but usually \fIlc\fP and \fIpb\fP are more important. For
example, a source code archive contains mostly US\-ASCII text, so something
like the following might give slightly (like 0.1\ %) smaller file than \fBxz \-6e\fP (try also without \fBlc=4\fP):
.RS
.PP
.nf
\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 Quellcode.tar\fP
.fi
.RE
.PP
Using another filter together with LZMA2 can improve compression with
certain file types. For example, to compress a x86\-32 or x86\-64 shared
library using the x86 BCJ filter:
.RS
.PP
.nf
\f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP
.fi
.RE
.PP
Beachten Sie, dass die Reihenfolge der Filteroptionen von Bedeutung
ist. Falls \fB\-\-x86\fP nach \fB\-\-lzma2\fP angegeben wird, gibt \fBxz\fP einen Fehler
aus, weil nach LZMA2 kein weiterer Filter sein darf und auch weil der
BCJ\-Filter für x86 nicht als letzter Filter in der Filterkette gesetzt
werden darf.
.PP
Der Delta\-Filter zusammen mit LZMA2 kann bei Bitmap\-Bildern gute Ergebnisse
liefern. Er sollte üblicherweise besser sein als PNG, welches zwar einige
fortgeschrittene Filter als ein simples delta bietet, aber für die
eigentliche Kompression »Deflate« verwendet.
.PP
The image has to be saved in uncompressed format, for example, as
uncompressed TIFF. The distance parameter of the Delta filter is set to
match the number of bytes per pixel in the image. For example, 24\-bit RGB
bitmap needs \fBdist=3\fP, and it is also good to pass \fBpb=0\fP to LZMA2 to
accommodate the three\-byte alignment:
.RS
.PP
.nf
\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP
.fi
.RE
.PP
If multiple images have been put into a single archive (for example,
\&\fB.tar\fP), the Delta filter will work on that too as long as all images have
the same number of bytes per pixel.
.
.SH "SIEHE AUCH"
\fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
\fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
.PP
XZ Utils: <https://tukaani.org/xz/>
.br
XZ Embedded: <https://tukaani.org/xz/embedded.html>
.br
LZMA\-SDK: <http://7\-zip.org/sdk.html>
|