'\" 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 01.12.2022 Tukaani "Utilități XZ"
.
.SH NUME
xz, unxz, xzcat, lzma, unlzma, lzcat \- Comprimă sau decomprimă fișiere .xz
și .lzma
.
.SH REZUMAT
\fBxz\fP [\fIopțiune...\fP] [\fIfișier...\fP]
.
.SH "ALIAS COMENZI"
\fBunxz\fP este echivalent cu \fBxz \-\-decompress\fP.
.br
\fBxzcat\fP este echivalent cu \fBxz \-\-decompress \-\-stdout\fP.
.br
\fBlzma\fP este echivalent cu \fBxz \-\-format=lzma\fP.
.br
\fBunlzma\fP este echivalent cu \fBxz \-\-format=lzma \-\-decompress\fP.
.br
\fBlzcat\fP este echivalent cu \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
.PP
Când scrieți scripturi care trebuie să decomprime fișiere, este recomandat
să folosiți întotdeauna comanda \fBxz\fP cu argumentele adecvate (\fBxz \-d\fP sau
\fBxz \-dc\fP) în loc de comenzile \fBunxz\fP și \fBxzcat\fP.
.
.SH DESCRIERE
\fBxz\fP este un instrument de comprimare a datelor de uz general cu sintaxă de
linie de comandă similară cu \fBgzip\fP(1) și \fBbzip2\fP(1). Formatul de fișier
nativ este formatul \fB.xz\fP, dar formatul vechi \fB.lzma\fP folosit de LZMA
Utils și fluxurile comprimate brute fără anteturi de format container sunt
de asemenea acceptate. În plus, este acceptată decomprimarea formatului
\&\fB.lz\fP folosit de \fBlzip\fP.
.PP
\fBxz\fP comprimă sau decomprimă fiecare \fIfișier\fP în funcție de modul de
operare selectat. Dacă nu sunt date \fIfișiere\fP sau \fIfișier\fP este \fB\-\fP,
\fBxz\fP citește de la intrarea standard și scrie datele procesate la ieșirea
standard. \fBxz\fP va refuza (afișează o eroare și omite \fIfișier\fP) să scrie
date comprimate la ieșirea standard dacă este un terminal. În mod similar,
\fBxz\fP va refuza să citească datele comprimate de la intrarea standard dacă
este un terminal.
.PP
Cu excepția cazului în care este specificată opțiunea \fB\-\-stdout\fP,
\fIfișierele\fP altele decât \fB\-\fP sunt scrise într\-un fișier nou al cărui nume
este derivat din numele \fIfișierului\fP sursă:
.IP \(bu 3
La comprimare, sufixul formatului de fișier țintă (\fB.xz\fP sau \fB.lzma\fP)
este atașat la numele fișierului sursă pentru a se obține numele fișierului
țintă.
.IP \(bu 3
La decomprimare, sufixul \fB.xz\fP, \fB.lzma\fP sau \fB.lz\fP este eliminat din
numele fișierului pentru a se obține numele fișierului țintă. \fBxz\fP
recunoaște și sufixele \fB.txz\fP și \fB.tlz\fP și le înlocuiește cu sufixul
\&\fB.tar\fP.
.PP
Dacă fișierul țintă există deja, este afișată o eroare și \fIfișier\fP este
omis.
.PP
Cu excepția cazului în care scrie la ieșirea standard, \fBxz\fP va afișa un
avertisment și va omite \fIfișier\fPul dacă se aplică oricare dintre
următoarele:
.IP \(bu 3
\fIFișierul\fP nu este un fișier obișnuit. Legăturile simbolice nu sunt urmate
și, prin urmare, nu sunt considerate fișiere obișnuite.
.IP \(bu 3
\fIFișierul\fP are mai mult de o legătură dură.
.IP \(bu 3
\fIFișierul\fP are activat bitul «setuid», «setgid» sau cel lipicios(sticky).
.IP \(bu 3
Modul de operare este stabilit la comprimare și \fIfișier\fP are deja un sufix
al formatului de fișier țintă (\fB.xz\fP sau \fB.txz\fP când se comprimă în
formatul \fB.xz\fP și \fB.lzma\fP sau \fB.tlz\fP când se comprimă în formatul
\&\fB.lzma\fP).
.IP \(bu 3
Modul de operare este stabilit la decomprimare și \fIfișierul\fP nu are un
sufix al niciunui format de fișier acceptat (\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP,
\&\fB.tlz\fP, sau \fB.lz\fP).
.PP
După comprimarea sau decomprimarea cu succes a \fIfișierului\fP, \fBxz\fP copiază
proprietarul, grupul, permisiunile, timpul de acces și timpul de modificare
din \fIfișierul\fP sursă în fișierul țintă. Dacă copierea grupului eșuează,
permisiunile sunt modificate astfel încât fișierul țintă să nu devină
accesibil utilizatorilor care nu aveau permisiunea de a accesa \fIfișierul\fP
sursă. \fBxz\fP nu acceptă încă copierea altor metadate, cum ar fi listele de
control al accesului sau atributele extinse.
.PP
Odată ce fișierul țintă a fost închis cu succes, \fIfișierul\fP sursă este
eliminat dacă nu a fost specificată opțiunea \fB\-\-keep\fP. \fIFișierul\fP sursă
nu este niciodată eliminat dacă rezultatul este scris la ieșirea standard
sau dacă apare o eroare.
.PP
Trimiterea unui semnal \fBSIGINFO\fP sau \fBSIGUSR1\fP către procesul \fBxz\fP face
ca acesta să imprime informații despre progres la ieșirea de eroare
standard. Acest lucru are o utilizare limitată, deoarece atunci când
ieșirea de eroare standard este un terminal, folosind opțiunea \fB\-\-verbose\fP
va afișa un indicator de progres de actualizare automată.
.
.SS "Utilizarea memoriei"
Cantitatea de memorie utilizată de \fBxz\fP variază de la câteva sute de
kiloocteți la câțiva gigaocteți, în funcție de opțiunile de comprimare.
Opțiunile utilizate la comprimarea unui fișier determină cerințele de
memorie ale instrumentului de decomprimare. De obicei, instrumentul de
decomprimare are nevoie de 5% până la 20% din cantitatea de memorie de care
a avut nevoie instrumentul de comprimare la crearea fișierului. De exemplu,
decomprimarea unui fișier creat cu \fBxz \-9\fP necesită în prezent 65Mio de
memorie. Totuși, este posibil să aveți fișiere \fB.xz\fP care necesită câțiva
gigaocteți de memorie pentru decomprimare.
.PP
În special utilizatorii de sisteme mai vechi pot considera deranjantă
posibilitatea unei utilizări foarte mari a memoriei. Pentru a preveni
surprizele neplăcute, \fBxz\fP are încorporat un limitator de utilizare a
memoriei, care este dezactivat implicit. În timp ce unele sisteme de
operare oferă modalități de a limita utilizarea memoriei proceselor, bazarea
pe aceasta nu a fost considerată a fi suficient de flexibilă (de exemplu,
utilizarea \fBulimit\fP(1) pentru a limita memoria virtuală tinde să paralizeze
\fBmmap\fP(2)).
.PP
Limitatorul de utilizare a memoriei poate fi activat cu opțiunea din linia
de comandă \fB\-\-memlimit=\fP\fIlimita\fP. Adesea este mai convenabil să activați
limitatorul în mod implicit prin definirea variabilei de mediu
\fBXZ_DEFAULTS\fP, de exemplu, \fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. Este posibil
să stabiliți limitele separat pentru comprimare și decomprimare folosind
\fB\-\-memlimit\-compress=\fP\fIlimita\fP și \fB\-\-memlimit\-decompress=\fP\fIlimita\fP.
Utilizarea acestor două opțiuni în afara \fBXZ_DEFAULTS\fP este foarte rar
utilă, deoarece o singură rulare a \fBxz\fP nu poate face atât comprimarea, cât
și decomprimarea și \fB\-\-memlimit=\fP\fIlimita\fP (sau \fB\-M\fP \fIlimita\fP ) este mai
scurt de tastat pe linia de comandă.
.PP
Dacă limita de utilizare a memoriei specificată este depășită la
decomprimare, \fBxz\fP va afișa o eroare și decomprimarea fișierului va eșua.
Dacă limita este depășită la comprimare, \fBxz\fP va încerca să reducă valorile
stabilite astfel încât limita să nu mai fie depășită (cu excepția cazului în
care se utilizează opțiunea \fB\-\-format=raw\fP sau \fB\-\-no\-adjust\fP). În acest
fel, operațiunea nu va eșua decât dacă limita stabilită este foarte mică.
Scalarea valorilor stabilite se face în pași care nu se potrivesc cu
valorile prestabilite ale nivelului de comprimare, de exemplu, dacă limita
este doar puțin mai mică decât cantitatea necesară pentru \fBxz \-9\fP, valorile
stabilite vor fi reduse doar puțin , nu până la valoarea prestabilită a lui
\fBxz \-8\fP.
.
.SS "Concatenare și completare (prin umplere cu octeți nuli) cu fișiere .xz"
Este posibil să concatenați fișierele \fB.xz\fP așa cum sunt. \fBxz\fP va
decomprima astfel de fișiere ca și cum ar fi un singur fișier \fB.xz\fP.
.PP
Este posibil să se introducă umplutură între părțile concatenate sau după
ultima parte. Umplutura trebuie să fie compusă din octeți nuli, iar
dimensiunea umpluturii trebuie să fie un multiplu de patru octeți. Acest
lucru poate fi util, de exemplu, dacă fișierul \fB.xz\fP este stocat pe un
mediu care măsoară dimensiunile fișierelor în blocuri de 512 de octeți.
.PP
Concatenarea și completarea nu sunt permise cu fișierele \fB.lzma\fP sau
fluxurile brute.
.
.SH OPȚIUNI
.
.SS "Sufixe de numere întregi și valori speciale"
În majoritatea locurilor în care este de așteptat un număr întreg ca
argument, un sufix opțional este acceptat pentru a indica cu ușurință
numerele întregi mari. Nu trebuie să existe spațiu între numărul întreg și
sufix.
.TP
\fBKiB\fP
Înmulțește numărul întreg cu 1.024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP și
\fBKB\fP sunt acceptate ca sinonime pentru \fBKiB\fP.
.TP
\fBMiB\fP
Înmulțește numărul întreg cu 1,048,576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP, și \fBMB\fP
sunt acceptate ca sinonime pentru \fBMiB\fP.
.TP
\fBGiB\fP
Înmulțește numărul întreg cu 1,073,741,824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP, și
\fBGB\fP sunt acceptate ca sinonime pentru \fBGiB\fP.
.PP
Valoarea specială \fBmax\fP poate fi utilizată pentru a indica valoarea maximă
întreagă suportată de opțiune.
.
.SS "Mod de operare"
Dacă sunt date mai multe opțiuni de mod de funcționare, ultima dintre ele,
este cea care va avea efect.
.TP
\fB\-z\fP, \fB\-\-compress\fP
Comprimare. Acesta este modul de operare implicit atunci când nu este
specificată nicio opțiune de mod de funcționare și nici un alt mod de
operare nu este implicat din numele comenzii (de exemplu, \fBunxz\fP implică
\fB\-\-decompress\fP).
.TP
\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
Decomprimare.
.TP
\fB\-t\fP, \fB\-\-test\fP
Testează integritatea \fIfișierelor\fP comprimate. Această opțiune este
echivalentă cu \fB\-\-decompress \-\-stdout\fP cu excepția faptului că datele
decomprimate sunt înlăturate în loc să fie scrise la ieșirea standard. Nu
sunt create sau eliminate fișiere.
.TP
\fB\-l\fP, \fB\-\-list\fP
Afișează informații despre \fIfișiere\fP comprimate. Nu are loc nicio
decomprimare la ieșire și nu sunt create sau eliminate fișiere. În modul
listă, programul nu poate citi datele comprimate din intrarea standard sau
din alte surse care nu pot fi căutate.
.IP ""
Listarea implicită arată informații de bază despre \fIfișiere\fP, câte un
fișier pe linie. Pentru a obține informații mai detaliate, utilizați și
opțiunea \fB\-\-verbose\fP. Pentru și mai multe informații, utilizați opțiunea
\fB\-\-verbose\fP de două ori, dar rețineți că acest lucru poate fi lent,
deoarece obținerea tuturor informațiilor suplimentare necesită multe
căutări. Lățimea ieșirii detaliate depășește 80 de caractere, deci
canalizarea ieșirii către, de exemplu, \fBless\ \-S\fP poate fi convenabilă dacă
terminalul nu este suficient de lat.
.IP ""
Ieșirea exactă poate varia între versiunile \fBxz\fP și diferitele
localizări(configurările regionale). Pentru ieșiri care pot fi citite de
mașină, ar trebui utilizată opțiunea \fB\-\-robot \-\-list\fP.
.
.SS "Modificatori de operare"
.TP
\fB\-k\fP, \fB\-\-keep\fP
Nu șterge fișierele de intrare.
.IP ""
Începând cu \fBxz\fP 5.2.6, această opțiune face ca \fBxz\fP să comprime sau să
decomprime, chiar dacă intrarea este o legătură simbolică către un fișier
obișnuit, are mai mult de\-o legătură dură sau are marcați biții setuid,
setgid sau bitul lipicios. Biții setuid, setgid și bitul lipicios nu sunt
copiați în fișierul țintă. În versiunile anterioare acest lucru se făcea
numai cu ajutorul opțiunii \fB\-\-force\fP.
.TP
\fB\-f\fP, \fB\-\-force\fP
Această opțiune are mai multe efecte:
.RS
.IP \(bu 3
Dacă fișierul țintă există deja, îl șterge înainte de comprimare sau
decomprimare.
.IP \(bu 3
Comprimă sau decomprimă chiar dacă intrarea este o legătură simbolică către
un fișier obișnuit, are mai mult de\-o legătură dură sau are marcați biții
setuid, setgid sau bitul lipicios. Biții setuid, setgid și bitul lipicios nu
sunt copiați în fișierul țintă.
.IP \(bu 3
Când este utilizată cu opțiunile \fB\-\-decompress\fP și \fB\-\-stdout\fP, comanda
\fBxz\fP nu poate recunoaște tipul fișierului sursă, și copiază fișierul sursă
așa cum este la ieșirea standard. Acest lucru permite comenzii \fBxzcat\fP
\fB\-\-force\fP să fie folosită drept comanda \fBcat\fP(1) pentru fișierele care nu
au fost comprimate cu \fBxz\fP. Rețineți că, în viitor, \fBxz\fP ar putea să
accepte noi formate de fișiere comprimate, ceea ce poate face ca \fBxz\fP să
decomprime mai multe tipuri de fișiere în loc să le copieze așa cum sunt la
ieșirea standard. Opțiunea \fB\-\-format=\fP\fIformat\fP poate fi folosită pentru a
restricționa \fBxz\fP să decomprime doar un singur format de fișier.
.RE
.TP
\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
Scrie datele comprimate sau decomprimate la ieșirea standard în loc de
într\-un fișier. Aceasta implică \fB\-\-keep\fP.
.TP
\fB\-\-single\-stream\fP
Decomprimă numai primul flux \fB.xz\fP și ignoră în tăcere posibilele date de
intrare rămase în urma fluxului. În mod normal, astfel de resturi rămase
face ca \fBxz\fP să afișeze o eroare.
.IP ""
\fBxz\fP nu decomprimă niciodată mai mult de un flux din fișierele \fB.lzma\fP sau
din fluxurile brute, dar această opțiune face ca \fBxz\fP să ignore posibilele
resturi de date rămase după fișierul \fB.lzma\fP sau fluxul brut.
.IP ""
Această opțiune nu are efect dacă modul de funcționare nu este
\fB\-\-decompress\fP sau \fB\-\-test\fP.
.TP
\fB\-\-no\-sparse\fP
Dezactivează crearea de fișiere dispersate. În mod implicit, dacă
decomprimă într\-un fișier obișnuit, \fBxz\fP încearcă să facă fișierul
dispersat dacă datele decomprimate conțin secvențe lungi de zerouri binare.
De asemenea, funcționează atunci când scrie la ieșirea standard, atâta timp
cât ieșirea standard este conectată la un fișier obișnuit și sunt
îndeplinite anumite condiții suplimentare pentru a o face în siguranță.
Crearea de fișiere dispersate poate economisi spațiu pe disc și poate
accelera decomprimarea prin reducerea cantității de date de In/Ieș pe disc.
.TP
\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
Când comprimă, utilizează \fI.suf\fP ca sufix pentru fișierul țintă în loc de
\&\fB.xz\fP sau \fB.lzma\fP. Dacă nu scrie la ieșirea standard și fișierul sursă
are deja sufixul \fI.suf\fP, este afișat un avertisment și fișierul este omis.
.IP ""
Când decomprimă, recunoaște fișierele cu sufixul \fI.suf\fP în plus față de
fișierele cu sufixul \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP sau \fB.lz\fP. Dacă
fișierul sursă are sufixul \fI.suf\fP, sufixul este eliminat pentru a obține
numele fișierului țintă.
.IP ""
La comprimarea sau decomprimarea fluxurilor brute (\fB\-\-format=raw\fP), sufixul
trebuie să fie întotdeauna specificat, cu excepția cazului în care se scrie
la ieșirea standard, deoarece nu există un sufix implicit pentru fluxurile
brute.
.TP
\fB\-\-files\fP[\fB=\fP\fIfișier\fP]
Citește numele fișierelor de procesat din \fIfișier\fP; dacă \fIfișierul\fP este
omis, numele fișierelor sunt citite de la intrarea standard. Numele de
fișiere trebuie să fie terminate cu caracterul de linie nouă. O liniuță
(\fB\-\fP) este luată ca nume de fișier obișnuit; nu înseamnă intrarea
standard. Dacă numele de fișiere sunt date și ca argumente în linia de
comandă, ele sunt procesate înainte ca numele fișierelor să fie citite din
\fIfișier\fP.
.TP
\fB\-\-files0\fP[\fB=\fP\fIfișier\fP]
Această opțiune este identică cu \fB\-\-files\fP[\fB=\fP\fIfișier\fP], cu excepția
faptului că fiecare nume de fișier trebuie să fie terminat cu caracterul
nul.
.
.SS "Formatul de bază al fișierului și opțiunile de comprimare"
.TP
\fB\-F\fP \fIformat\fP, \fB\-\-format=\fP\fIformat\fP
Specifică \fIformatul\fP fișierului pentru comprimare sau decomprimare:
.RS
.TP
\fBauto\fP
Aceasta este valoarea implicită. La comprimare, \fBauto\fP este echivalent cu
\fBxz\fP. La decomprimare, formatul fișierului de intrare este detectat
automat. Rețineți că fluxurile brute (create cu \fB\-\-format=raw\fP) nu pot fi
detectate automat.
.TP
\fBxz\fP
Comprimă în formatul de fișier \fB.xz\fP sau acceptă numai fișierele \fB.xz\fP
când decomprimă.
.TP
\fBlzma\fP, \fBalone\fP
Comprimă în formatul de fișier \fB.lzma\fP vechi sau acceptă numai fișierele
\&\fB.lzma\fP când decomprimă. Numele alternativ \fBalone\fP este furnizat pentru
compatibilitatea cu versiunile mai vechi de LZMA Utils.
.TP
\fBlzip\fP
Acceptă numai fișierele \fB.lz\fP când decomprimă. Comprimarea nu este
acceptată.
.IP ""
Formatul \fB.lz\fP versiunea 0 și versiunea neextinsă 1 sunt acceptate.
Fișierele versiunea 0 au fost produse de \fBlzip\fP cu versiunea 1.3 sau mai
veche. Astfel de fișiere nu sunt obișnuite, dar pot fi găsite în arhivele
de fișiere, deoarece câteva pachete sursă au fost lansate în acest format.
Oamenii ar putea avea și fișiere personale vechi în acest format. Suportul
de decomprimare pentru versiunea de format 0 a fost eliminat în \fBlzip\fP
1.18.
.IP ""
\fBlzip\fP 1.4 și versiunile ulterioare creează fișiere în formatul versiunea
1. Extensia „sync flush marker” pentru versiunea 1 de format a fost
adăugată în \fBlzip\fP 1.6. Această extensie este folosită rar și nu este
acceptată de \fBxz\fP (diagnosticată ca intrare coruptă).
.TP
\fBraw\fP
Comprimă sau decomprimă un flux brut (fără anteturi). Acest lucru este
destinat doar utilizatorilor avansați. Pentru a decodifica fluxurile brute,
trebuie să utilizați opțiunea \fB\-\-format=raw\fP și să specificați în mod
explicit lanțul de filtre, care în mod normal ar fi fost stocat în
anteturile containerului.
.RE
.TP
\fB\-C\fP \fIverificarea\fP, \fB\-\-check=\fP\fIverificarea\fP
Specifică tipul verificării integrității. Verificarea este calculată din
datele necomprimate și stocată în fișierul \fB.xz\fP. Această opțiune are
efect numai la comprimarea în format \fB.xz\fP; formatul \fB.lzma\fP nu acceptă
verificări de integritate. Verificarea integrității (dacă există) este
efectuată atunci când fișierul \fB.xz\fP este decomprimat.
.IP ""
Tipuri de \fIverificare\fP acceptate:
.RS
.TP
\fBnone\fP
Nu calculează deloc o verificare a integrității. Aceasta este de obicei o
idee proastă. Acest lucru poate fi util atunci când integritatea datelor
este oricum verificată prin alte mijloace.
.TP
\fBcrc32\fP
Calculează CRC32 folosind polinomul din IEEE\-802.3 (Ethernet).
.TP
\fBcrc64\fP
Calculează CRC64 folosind polinomul din ECMA\-182. Aceasta este valoarea
implicită, deoarece este ceva mai bună decât CRC32 la detectarea fișierelor
deteriorate, iar diferența de viteză este neglijabilă.
.TP
\fBsha256\fP
Calculează SHA\-256. Acest lucru este oarecum mai lent decât CRC32 și CRC64.
.RE
.IP ""
Integritatea antetelor \fB.xz\fP este întotdeauna verificată cu CRC32. Nu este
posibilă modificarea sau dezactivarea acesteia.
.TP
\fB\-\-ignore\-check\fP
Nu efectuează verificarea integrității datelor comprimate la decomprimare.
Valorile CRC32 din antetele \fB.xz\fP vor fi însă verificate normal.
.IP ""
\fBNu utilizați această opțiune decât dacă știți ce faceți.\fP Motive posibile
pentru a utiliza această opțiune:
.RS
.IP \(bu 3
Încercarea de a recupera datele dintr\-un fișier .xz corupt.
.IP \(bu 3
Accelerarea decomprimării. Acest lucru contează mai ales cu SHA\-256 sau cu
fișierele care s\-au comprimat extrem de bine. Este recomandat să nu
utilizați această opțiune în acest scop decât dacă integritatea fișierului
este verificată extern într\-un alt mod.
.RE
.TP
\fB\-0\fP ... \fB\-9\fP
Selectează un nivel prestabilit de comprimare. Valoarea implicită este
\fB\-6\fP. Dacă sunt specificate mai multe niveluri prestabilite, ultimul are
efect. Dacă a fost deja specificat un lanț de filtre personalizat,
specificarea unui nivel prestabilit de comprimare șterge lanțul de filtre
personalizat.
.IP ""
Diferențele dintre valorile prestabilite sunt mai semnificative decât cu
\fBgzip\fP(1) și \fBbzip2\fP(1). Valorile de comprimare selectate determină
cerințele de memorie ale instrumentului de decomprimare, astfel încât
utilizarea unui nivel prea mare prestabilit ar putea face „dureroasă”
decomprimarea fișierului pe un sistem vechi cu puțină memorie RAM. Mai
exact, \fBnu este o idee bună să folosiți orbește \-9 pentru tot\fP așa cum se
întâmplă adesea cu \fBgzip\fP(1) și \fBbzip2\fP(1).
.RS
.TP
\fB\-0\fP ... \fB\-3\fP
Acestea sunt valorile prestabilite oarecum rapide. \fB\-0\fP este uneori mai
rapid decât \fBgzip \-9\fP în timp ce comprimă mult mai bine. Cele mai ridicate
au adesea viteza comparabilă cu \fBbzip2\fP(1) cu un raport de comprimare
comparabil sau mai bun, deși rezultatele depind foarte mult de tipul de date
care sunt comprimate.
.TP
\fB\-4\fP ... \fB\-6\fP
Comprimare bună spre foarte bună, păstrând în același timp utilizarea
memoriei de către instrumentul de decomprimare la un nivel rezonabil chiar
și pentru sistemele vechi. \fB\-6\fP este valoarea implicită, care este de
obicei o alegere bună pentru distribuirea fișierelor care trebuie să poată
fi decomprimate chiar și pe sisteme cu doar 16Mio de memorie RAM. Opțiunile
(\fB\-5e\fP sau \fB\-6e\fP ar putea fi demne de luat în considerare. A se vedea
opțiunea \fB\-\-extreme\fP.)
.TP
\fB\-7 ... \-9\fP
Acestea sunt precum \fB\-6\fP, dar cu cerințe mai mari de memorie pentru
comprimare și decomprimare. Acestea sunt utile numai atunci când comprimați
fișiere mai mari de 8Mio, 16Mio și, respectiv, 32Mio.
.RE
.IP ""
Pe același hardware, viteza de decomprimare este aproximativ un număr
constant de octeți de date comprimate pe secundă. Cu alte cuvinte, cu cât
comprimarea este mai bună, cu atât decomprimarea va fi de obicei mai
rapidă. Aceasta înseamnă, de asemenea, că valoarea de la ieșire a
cantității de date necomprimate produsă pe secundă poate varia foarte mult.
.IP ""
Următorul tabel rezumă caracteristicile valorilor prestabilite:
.RS
.RS
.PP
.TS
tab(;);
c c c c c
n n n n n.
ValPrestab;DimDict;CPUComp;MemComp;MemDec
\-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 ""
Descrieri coloane:
.RS
.IP \(bu 3
DimDict este dimensiunea dicționarului LZMA2. Este o risipă de memorie să
folosești un dicționar mai mare decât dimensiunea fișierului necomprimat.
De aceea este bine să evitați utilizarea valorilor prestabilite \fB\-7\fP
\&... \fB\-9\fP atunci când nu este nevoie cu adevărat de ele. Pentru valoarea
prestabilită \fB\-6\fP sau alta mai mică, cantitatea de memorie irosită este de
obicei suficient de mică pentru a nu conta.
.IP \(bu 3
CPUComp este o reprezentare simplificată a configurărilor LZMA2 care
afectează viteza de comprimare. Dimensiunea dicționarului afectează și
viteza, așa că, în timp ce CPUComp este aceeași pentru nivelurile \fB\-6\fP
\&... \fB\-9\fP, nivelurile mai mari tind să fie puțin mai lente. Pentru a obține
o comprimare și mai lentă și, astfel, posibil mai bună, consultați opțiunea
\fB\-\-extreme\fP.
.IP \(bu 3
MemComp conține cerințele de memorie ale comprimării în modul cu un singur
fir de execuție. Poate varia ușor între versiunile \fBxz\fP. Cerințele de
memorie ale unora dintre viitoarele moduri cu mai multe fire de execuție pot
să fie din nefericire cu mult mai mari decât cele ale modului cu un singur
fir.
.IP \(bu 3
MemDec conține cerințele de memorie pentru decomprimare. Adică,
configurările de comprimare determină cerințele de memorie ale
decomprimării. Cantitatea exactă a memoriei utilizate la decomprimare este
puțin mai mare decât dimensiunea dicționarului LZMA2, dar valorile din tabel
au fost rotunjite la următorul Mio.
.RE
.TP
\fB\-e\fP, \fB\-\-extreme\fP
Utilizează o variantă mai lentă a nivelului prestabilit de comprimare
selectat (\fB\-0\fP ... \fB\-9\fP) pentru a obține un raport de comprimare puțin mai
bun, dar din nefericire, acest lucru îl poate înrăutăți. Utilizarea
memoriei pentru decomprimare nu este afectată, dar utilizarea memoriei la
comprimare crește puțin la nivelurile prestabilite \fB\-0\fP ... \fB\-3\fP.
.IP ""
Deoarece există două valori prestabilite cu dimensiuni ale dicționarului de
4Mio și 8Mio, valorile prestabilite \fB\-3e\fP și \fB\-5e\fP folosesc configurări
puțin mai rapide (CPUComp mai mic) decât \fB\-4e\fP și \fB\-6e\fP, respectiv. În
acest fel, nu există două nivele prestabilite identice.
.RS
.RS
.PP
.TS
tab(;);
c c c c c
n n n n n.
ValPrestab;DimDict;CPUComp;MemComp;MemDec
\-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 ""
De exemplu, există un total de patru nivele prestabilite care folosesc
dicționarul 8Mio, a căror ordine de la cel mai rapid la cel mai lent este
\fB\-5\fP, \fB\-6\fP, \fB\-5e\fP și \fB\-6e\fP .
.TP
\fB\-\-fast\fP
.PD 0
.TP
\fB\-\-best\fP
.PD
Acestea sunt alias de opțiuni, oarecum înșelătoare pentru \fB\-0\fP și,
respectiv, \fB\-9\fP. Acestea sunt furnizate numai pentru compatibilitatea cu
LZMA Utils. Evitați utilizarea acestor opțiuni.
.TP
\fB\-\-block\-size=\fP\fIdimensiunea\fP
Când comprimă în formatul \fB.xz\fP, împarte datele de intrare în blocuri de
\fIdimensiunea\fP octeți. Blocurile sunt comprimate independent unul de
celălalt, ceea ce ajută în modul cu mai multe fire de execuție și face
posibilă decomprimarea cu acces aleatoriu limitat. Această opțiune este de
obicei folosită pentru a suprascrie dimensiunea implicită a blocului în
modul cu mai multe fire de execuție, dar această opțiune poate fi folosită
și în modul cu un singur fir de execuție.
.IP ""
În modul cu mai multe fire de execuție, aproximativ de trei ori
\fIdimensiunea\fP de octeți vor fi alocați în fiecare fir pentru stocarea
intrării și ieșirii. \fIDimensiunea\fP implicită este de trei ori dimensiunea
dicționarului LZMA2 sau 1Mio, oricare dintre acestea este mai mare. În mod
obișnuit, o valoare bună este de două la patru ori dimensiunea dicționarului
LZMA2 sau de cel puțin 1Mio. Utilizarea unei \fIdimensiuni\fP mai mici decât
dimensiunea dicționarului LZMA2 este o risipă de memorie RAM, deoarece
atunci memoria tampon a dicționarului LZMA2 nu va fi niciodată utilizată pe
deplin. Dimensiunile blocurilor sunt stocate în antetele blocurilor, pe
care o versiune viitoare a \fBxz\fP le va folosi pentru decomprimarea cu mai
multe fire de execuție.
.IP ""
În modul cu un singur fir de execuție, nicio divizare a blocurilor nu se
face în mod implicit. Folosirea acestei opțiuni nu afectează utilizarea
memoriei. Nu sunt stocate informații despre dimensiune în antetele
blocurilor, astfel încât fișierele create în modul cu un singur fir de
execuție nu vor fi identice cu fișierele create în modul cu mai multe fire
de execuție. Lipsa informațiilor despre dimensiune înseamnă, de asemenea,
că o versiune viitoare de \fBxz\fP nu va putea decomprima fișierele în modul cu
mai multe fire de execuție.
.TP
\fB\-\-block\-list=\fP\fIdimensiuni\fP
Atunci când comprimă în formatul \fB.xz\fP, începe un nou bloc după intervalele
specificate, de date necomprimate.
.IP ""
\fIDimensiunile\fP necomprimate ale blocurilor sunt specificate ca o listă
separată prin virgule. Omiterea unei dimensiuni (două sau mai multe virgule
consecutive) este o prescurtare pentru a folosi dimensiunea blocului
anterior.
.IP ""
Dacă fișierul de intrare este mai mare decât suma \fIdimensiuni\fPlor, ultima
valoare din \fIdimensiuni\fP se repetă până la sfârșitul fișierului. O valoare
specială de \fB0\fP poate fi utilizată ca ultima valoare pentru a indica faptul
că restul fișierului ar trebui să fie codificat ca un singur bloc.
.IP ""
Dacă se specifică \fIdimensiuni\fP care depășesc dimensiunea blocului
codificatorului (fie valoarea implicită în modul fire de execuție, fie
valoarea specificată cu opțiunea \fB\-\-block\-size=\fP\fIdimensiune\fP),
codificatorul va crea blocuri suplimentare păstrând în același timp limitele
specificate în \fIdimensiuni\fP. De exemplu, dacă se specifică
\fB\-\-block\-size=10MiB\fP \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP iar
fișierul de intrare este de 80Mio, se vor obține 11 blocuri de: 5, 10, 8,
10, 2, 10, 10, 4, 10, 10 și 1Mio.
.IP ""
În modul cu mai multe fire de execuție, dimensiunile blocurilor sunt stocate
în antetele blocurilor. Acest lucru nu se face în modul cu un singur fir de
execuție, astfel încât ieșirea codificată nu va fi identică cu cea a modului
cu mai multe fire de execuție.
.TP
\fB\-\-flush\-timeout=\fP\fItimp_limită\fP
La comprimare, dacă au trecut mai mult de \fItimp_limită\fP milisecunde (un
întreg pozitiv) de la curățarea anterioară și citirea mai multor intrări
s\-ar bloca, toate datele de intrare în așteptare sunt eliminate din
codificator și puse la dispoziție în fluxul de ieșire. Acest lucru poate să
fie util dacă \fBxz\fP este utilizat pentru a comprima datele care sunt
transmise în flux printr\-o rețea. Valorile mici de \fItimp_limită\fP fac
datele disponibile la capătul de recepție cu o mică întârziere, dar valorile
mari de \fItimp_limită\fP oferă un raport de comprimare mai bun.
.IP ""
Această caracteristică este dezactivată în mod implicit. Dacă această
opțiune este specificată de mai multe ori, ultima este cea care se ia în
considerare. Valoarea specială a lui \fItimp_limită\fP de \fB0\fP, poate fi
utilizată pentru a dezactiva în mod explicit această caracteristică.
.IP ""
Această caracteristică nu este disponibilă în sistemele non\-POSIX.
.IP ""
.\" FIXME
\fBAceastă caracteristică este încă experimentală.\fP În prezent, \fBxz\fP este
nepotrivit pentru decomprimarea fluxului în timp real datorită modului în
care \fBxz\fP utilizează memoria tampon.
.TP
\fB\-\-memlimit\-compress=\fP\fIlimita\fP
Stabilește o limită de utilizare a memoriei pentru comprimare. Dacă această
opțiune este specificată de mai multe ori, ultima va avea efect.
.IP ""
Dacă parametrii de comprimare depășesc \fIlimita\fP, \fBxz\fP va încerca să
ajusteze parametrii scăzând valorile acestora, astfel încât limita să nu mai
fie depășită și va afișa o notificare că ajustarea automată a fost
efectuată. Ajustările se fac în această ordine: reducerea numărului de
fire, trecerea la modul un singur fir de execuție dacă chiar și un singur
fir în modul cu mai multe fire de execuție depășește \fIlimita\fP și, în final,
reducerea dimensiunii dicționarului LZMA2.
.IP ""
Când comprimă cu opțiunea \fB\-\-format=raw\fP sau dacă a fost specificată
opțiunea \fB\-\-no\-adjust\fP, numai numărul de fire poate fi redus, deoarece se
poate face fără a afecta rezultatul comprimării.
.IP ""
Dacă \fIlimita\fP nu poate fi îndeplinită chiar și cu ajustările descrise mai
sus, este afișată o eroare și \fBxz\fP va ieși cu starea de ieșire 1.
.IP ""
\fILimita\fP poate fi specificata în mai multe moduri:
.RS
.IP \(bu 3
\fILimita\fP poate fi o valoare absolută în octeți. Utilizarea unui sufix
întreg precum \fBMiB\fP poate fi utilă. De exemplu:
\fB\-\-memlimit\-compress=80MiB\fP
.IP \(bu 3
\fILimita\fP poate fi specificată ca procent din memoria fizică totală (RAM).
Acest lucru poate fi util mai ales atunci când definiți variabila de mediu
\fBXZ_DEFAULTS\fP într\-un script de inițializare shell care este partajat între
diferite calculatoare. În acest fel, limita este automat mai mare pe
sistemele cu mai multă memorie. De exemplu: \fB\-\-memlimit\-compress=70%\fP
.IP \(bu 3
\fILimita\fP poate fi restabilită la valoarea implicită dându\-i valoarea \fB0\fP.
În prezent, aceasta este echivalentă cu stabilirea \fIlimitei\fP la \fBmax\fP
(fără limită de utilizare a memoriei).
.RE
.IP ""
Pentru \fBxz\fP pe 32 de biți există un caz special: dacă \fIlimita\fP ar fi peste
\fB4020MiB\fP, \fIlimita\fP este stabilită la \fB4020MiB\fP. Pe MIPS32 este
stabilită în schimb la \fB2000MiB\fP. (Valorile \fB0\fP și \fBmax\fP nu sunt
afectate de acest lucru. O caracteristică similară nu există pentru
decomprimare.) Acest lucru poate fi util atunci când un executabil pe 32 de
biți are acces la un spațiu de adrese de 4Gio (2Gio pe MIPS32), se speră că
nu produce daune în alte situații.
.IP ""
Consultați și secțiunea \fBUtilizarea memoriei\fP.
.TP
\fB\-\-memlimit\-decompress=\fP\fIlimita\fP
Stabilește o limită de utilizare a memoriei pentru decomprimare. Acest
lucru afectează și modul \fB\-\-list\fP. Dacă operațiunea nu este posibilă fără
a depăși \fIlimita\fP, \fBxz\fP va afișa o eroare și decomprimarea fișierului va
eșua. Consultați \fB\-\-memlimit\-compress=\fP\fIlimita\fP pentru modalitățile
posibile de a specifica \fIlimita\fP.
.TP
\fB\-\-memlimit\-mt\-decompress=\fP\fIlimita\fP
Stabilește o limită de utilizare a memoriei pentru decomprimarea cu mai
multe fire de execuție. Acest lucru poate afecta doar numărul de fire de
execuție; acest lucru nu îl va face niciodată pe \fBxz\fP să refuze
decomprimarea unui fișier. Dacă \fIlimita\fP este prea scăzută pentru a
permite orice mod cu mai multe fire de execuție, \fIlimita\fP este ignorată și
\fBxz\fP va continua în modul cu un singur fir de execuție. Rețineți că, dacă
se folosește și opțiunea \fB\-\-memlimit\-decompress\fP, se va aplica întotdeauna
atât modurilor cu un singur fir de execuție, cât și modurilor cu mai multe
fire de execuție și astfel \fIlimita\fP efectivă pentru modul cu mai multe fire
de execuție nu va fi niciodată mai mare decât limita stabilită cu opțiunea
\fB\-\-memlimit\-decompress\fP.
.IP ""
Spre deosebire de celelalte opțiuni de limită de utilizare a memoriei,
opțiunea \fB\-\-memlimit\-mt\-decompress=\fP\fIlimita\fP are o \fIlimită\fP implicită
specifică sistemului. Comanda \fBxz \-\-info\-memory\fP poate fi folosită pentru
a vedea valoarea curentă.
.IP ""
Această opțiune și valoarea ei implicită există deoarece, fără nicio limită,
decomprimarea cu (mai multe) fire de execuție ar putea ajunge să aloce o
cantitate „nebună” de memorie cu unele fișiere de intrare. Dacă \fIlimita\fP
implicită este prea scăzută pe sistemul dumneavoastră, nu ezitați să
creșteți \fIlimita\fP, dar niciodată să nu o stabiliți la o valoare mai mare
decât cantitatea de memorie RAM utilizabilă și cu niște fișiere de intrare
adecvate, \fBxz\fP va încerca să utilizeze acea cantitate de memorie chiar și
cu un număr redus de fire de execuție. Rularea lui \fBxz\fP cu depășirea
cantității de memorie fizice(RAM) sau a celei de interschimb(swap) nu va
îmbunătăți performanța de decomprimare.
.IP ""
Consultați opțiunea \fB\-\-memlimit\-compress=\fP\fIlimita\fP pentru modalități
posibile de a specifica \fIlimita\fP. Stabilirea \fIlimitei\fP la \fB0\fP
restabilește \fIlimita\fP la valoarea implicită specifică sistemului.
.IP ""
.TP
\fB\-M\fP \fIlimita\fP, \fB\-\-memlimit=\fP\fIlimita\fP, \fB\-\-memory=\fP\fIlimita\fP
Aceasta este echivalentă cu specificarea opțiunilor:
\fB\-\-memlimit\-compress=\fP\fIlimita\fP \fB\-\-memlimit\-decompress=\fP\fIlimita\fP
\fB\-\-memlimit\-mt\-decompress=\fP\fIlimita\fP.
.TP
\fB\-\-no\-adjust\fP
Afișează o eroare și iese dacă limita de utilizare a memoriei nu poate fi
îndeplinită fără ajustarea parametrilor care afectează ieșirea comprimată.
Adică, acest lucru împiedică \fBxz\fP să comute codificatorul din modul cu mai
multe fire de execuție în modul cu un singur fir de execuție și să reducă
dimensiunea dicționarului LZMA2. Chiar și atunci când această opțiune este
utilizată, numărul de fire de execuție poate fi redus pentru a îndeplini
limita de utilizare a memoriei, deoarece aceasta nu va afecta comprimarea.
.IP ""
Ajustarea automată este întotdeauna dezactivată la crearea fluxurilor brute
(\fB\-\-format=raw\fP).
.TP
\fB\-T\fP \fInumăr\fP, \fB\-\-threads=\fP\fInumăr\fP
Specifică numărul de fire de execuție de utilizat. Stabilirea \fInumărului\fP
la valoarea specială \fB0\fP, face ca \fBxz\fP să utilizeze până la atâtea fire de
execuție câte procesoare sunt în sistem. Numărul real de fire de execuție
poate fi mai mic decât \fInumăr\fP dacă fișierul de intrare nu este suficient
de mare pentru a trece la modul cu mai multe fire de execuție cu parametrii
dați, sau dacă folosirea mai multor fire de execuție ar depăși limita de
utilizare a memoriei.
.IP ""
Operațiile de comprimare cu un singur fir de execuție și cele cu mai multe
fire de execuție produc ieșiri diferite. Comprimarea cu un singur fir de
execuție va oferi cea mai mică dimensiune a fișierului, dar numai ieșirea de
la comprimarea cu mai multe fire de execuție poate fi decomprimată folosind
mai multe fire. Stabilirea \fInumărului\fP la \fB1\fP va determina ca \fBxz\fP să
folosească modul cu un singur fir de execuție. Stabilirea \fInumărului\fP la
orice altă valoare, inclusiv \fB0\fP, va determina ca \fBxz\fP să folosească
comprimarea cu mai multe fire de execuție chiar dacă sistemul acceptă doar
un fir hardware. (\fBxz\fP 5.2.x folosește modul cu un singur fir de execuție
în această situație.)
.IP ""
Pentru a utiliza modul cu mai multe fire de execuție cu un singur fir,
stabiliți \fInumărul\fP la \fB+1\fP. Prefixul \fB+\fP nu are efect cu alte valori
decât \fB1\fP. O limită de utilizare a memoriei poate face în continuare \fBxz\fP
să treacă în modul cu un singur fir, cu excepția cazului în care este
utilizată opțiunea \fB\-\-no\-adjust\fP. Suportul pentru prefixul \fB+\fP a fost
adăugat în \fBxz\fP 5.4.0.
.IP ""
Dacă a fost solicitat un număr automat de fire și nu a fost specificată
nicio limită de utilizare a memoriei, atunci o limită „maleabilă” implicită
specifică sistemului va fi utilizată pentru a limita eventual numărul de
fire de execuție. Este o limită „maleabilă” în sensul că este ignorată dacă
numărul de fire devine unul, astfel o limită „maleabilă” nu va opri
niciodată \fBxz\fP să comprime sau să decomprime. Această limită „maleabilă”
implicită nu va face \fBxz\fP să treacă de la modul cu mai multe fire de
execuție la modul cu un singur fir de execuție. Limitele active pot fi
văzute rulând comanda \fBxz \-\-info\-memory\fP.
.IP ""
În prezent, singura metodă de procesare cu fire de execuție este împărțirea
intrării în blocuri și comprimarea lor independent unul de celălalt.
Dimensiunea implicită a blocului depinde de nivelul de comprimare și poate
fi înlocuită cu opțiunea \fB\-\-block\-size=\fP\fIdimensiune\fP.
.IP ""
Decomprimarea cu fire de execuție funcționează numai pe fișierele care
conțin mai multe blocuri cu informații despre dimensiune în antetele
blocurilor. Toate fișierele suficient de mari comprimate în modul cu mai
multe fire de execuție îndeplinesc această condiție, dar fișierele
comprimate în modul cu un singur fir de execuție nu o îndeplinesc chiar dacă
a fost folosită opțiunea \fB\-\-block\-size=\fP\fIdimensiune\fP.
.
.SS "Lanțuri de filtrare personalizate pentru instrumentul de comprimare"
Un lanț de filtrare personalizat permite specificarea parametrilor de
comprimare în detaliu, în loc să se bazeze pe cei asociați opțiunilor
prestabilite. Când este specificat un lanț de filtrare personalizat,
opțiunile prestabilite (\fB\-0\fP \&...\& \fB\-9\fP și \fB\-\-extreme\fP) de mai devreme
din linia de comandă sunt uitate. Dacă o opțiune prestabilită este
specificată după una sau mai multe opțiuni de lanț de filtrare personalizat,
noua prestabilire intră în vigoare și opțiunile lanțului de filtrare
personalizat, specificate mai devreme sunt uitate.
.PP
Un lanț de filtrare este comparabil cu conductele din linia de comandă. La
comprimare, intrarea necomprimată merge la primul filtru, a cărui ieșire
merge la următorul filtru (dacă există). Ieșirea ultimului filtru este
scrisă în fișierul comprimat. Numărul maxim de filtre din lanț este de
patru, dar de obicei un lanț de filtrare are doar unul sau două filtre.
.PP
Multe filtre au limitări în ceea ce privește locul în care se pot afla în
lanțul de filtrare: unele filtre pot funcționa doar ca ultimul filtru din
lanț, altele doar ca non\-ultim filtru și unele funcționează în orice poziție
din lanț. În funcție de filtru, această limitare este fie inerentă
proiectării filtrului, fie există pentru a preveni problemele de securitate.
.PP
Un lanț de filtrare personalizat este specificat utilizând una sau mai multe
opțiuni de filtrare în ordinea în care sunt cerute în lanțul de filtrare.
Adică, ordinea opțiunilor de filtrare este semnificativă! La decodificarea
fluxurilor brute (\fB\-\-format=raw\fP), lanțul de filtrare este specificat în
aceeași ordine în care a fost specificat la comprimare.
.PP
Filtrele iau \fIopțiuni\fP specifice filtrului ca o listă separată prin
virgule. Virgulele suplimentare din \fIopțiuni\fP sunt ignorate. Fiecare
opțiune are o valoare implicită, așa că trebuie să specificați numai cele pe
care doriți să le modificați.
.PP
Pentru a vedea întregul lanț de filtre și \fIopțiuni\fP, utilizați \fBxz \-vv\fP
(adică folosiți \fB\-\-verbose\fP de două ori). Acest lucru funcționează și
pentru vizualizarea opțiunilor lanțului de filtre utilizate de valorile
prestabilite.
.TP
\fB\-\-lzma1\fP[\fB=\fP\fIopțiuni\fP]
.PD 0
.TP
\fB\-\-lzma2\fP[\fB=\fP\fIopțiuni\fP]
.PD
Adaugă filtrul LZMA1 sau LZMA2 la lanțul de filtre. Aceste filtre pot fi
folosite doar ca ultimul filtru din lanț.
.IP ""
LZMA1 este un filtru vechi, care este acceptat aproape exclusiv datorită
formatului de fișier vechi \fB.lzma\fP, care acceptă numai LZMA1. LZMA2 este o
versiune actualizată a LZMA1 pentru a rezolva unele probleme practice ale
LZMA1. Formatul \fB.xz\fP folosește LZMA2 și nu acceptă deloc LZMA1. Viteza
de comprimare și rapoartele LZMA1 și LZMA2 sunt practic aceleași.
.IP ""
LZMA1 și LZMA2 au același set de \fIopțiuni\fP:
.RS
.TP
\fBpreset=\fP\fIprestabilit\fP
Reconfigurează toate \fIopțiunile\fP LZMA1 sau LZMA2 la \fIprestabilit\fP.
\fIPrestabilit\fP constă dintr\-un număr întreg, care poate fi urmat de
modificatori prestabiliți cu o singură literă. Numărul întreg poate fi de
la \fB0\fP la \fB9\fP, potrivindu\-se cu opțiunile liniei de comandă \fB\-0\fP \&...\&
\fB\-9\fP. Singurul modificator acceptat în prezent este \fBe\fP, care se
potrivește cu \fB\-\-extreme\fP. Dacă nu este specificat \fBprestabilit\fP,
valorile implicite ale \fIopțiunilor\fP LZMA1 sau LZMA2 sunt preluate din
prestabilirea \fB6\fP.
.TP
\fBdict=\fP\fIdimensiunea\fP
\fIDimensiunea\fP dicționarului (istoricul memoriei tampon) indică câți octeți
din datele necomprimate recent procesate sunt păstrați în memorie.
Algoritmul încearcă să găsească secvențe de octeți care se repetă
(potriviri) în datele necomprimate și să le înlocuiască cu referințe la
datele aflate în prezent în dicționar. Cu cât dicționarul este mai mare, cu
atât este mai mare șansa de a găsi o potrivire. Astfel, creșterea
\fIdimensiunii\fP dicționarului îmbunătățește de obicei raportul de comprimare,
dar un dicționar mai mare decât fișierul necomprimat este risipă de memorie.
.IP ""
\fIDimensiunea\fPtipică a dicționarului este de la 64Kio până la 64Mio.
Minimul este de 4Kio. Maximul pentru compresie este în prezent de 1,5Gio
(1536Mio). Decomprimarea acceptă deja dicționare cu până la un octet mai
puțin de 4Gio, care este maximul pentru formatele de flux LZMA1 și LZMA2.
.IP ""
\fIDimensiunea\fP dicționarului și găsitorul de potriviri (match finder) →
(\fImf\fP) determină împreună utilizarea memoriei de către codificatorul LZMA1
sau LZMA2. Aceeași \fIdimensiune\fP a dicționarului (sau mai mare) care a fost
utilizată la comprimare, este necesară pentru decomprimare, astfel încât
utilizarea memoriei de către decodificator este determinată de dimensiunea
dicționarului utilizată la comprimare. Antetele \fB.xz\fP stochează
\fIdimensiunea\fP dicționarului fie ca 2^\fIn\fP, fie ca 2^\fIn\fP + 2^(\fIn\fP\-1), deci
aceste \fIdimensiuni\fP sunt oarecum preferate pentru comprimare. Alte
\fIdimensiuni\fP vor fi rotunjite atunci când sunt stocate în anteturile
\&\fB.xz\fP.
.TP
\fBlc=\fP\fIlc\fP
Specifică numărul de biți de context literal. Minimul este 0 și maximul
este 4; implicit este 3. În plus, suma \fIlc\fP și \fIlp\fP nu trebuie să
depășească 4.
.IP ""
Toți octeții care nu pot fi codificați ca potriviri sunt codificați ca
literali. Adică, literalii sunt pur și simplu octeți de 8 biți care sunt
codificați unul câte unul.
.IP ""
Codificarea literală presupune că cei mai mari biți \fIlc\fP ai octetului
anterior necomprimat se corelează cu octetul următor. De exemplu, în textul
tipic englezesc, o literă mare este adesea urmată de o literă mică, iar o
literă mică este urmată de obicei de o altă literă mică. În setul de
caractere US\-ASCII, cei mai mari trei biți sunt 010 pentru literele mari și
011 pentru literele mici. Când \fIlc\fP este cel puțin 3, codificarea literală
poate profita de această proprietate în datele necomprimate.
.IP ""
Valoarea implicită (3) este de obicei bună. Dacă doriți o comprimare
maximă, testați \fBlc=4\fP. Uneori ajută puțin, iar uneori înrăutățește
comprimarea . Dacă o agravează, încercați de\-asemeni cu \fBlc=2\fP.
.TP
\fBlp=\fP\fIlp\fP
Specifică numărul de biți de poziție literală. Minimul este 0 și maximul
este 4; implicit este 0.
.IP ""
\fILp\fP afectează ce fel de aliniere în datele necomprimate este presupusă la
codificarea literalelor. Consultați argumentul \fIpb\fP de mai jos pentru mai
multe informații despre aliniere.
.TP
\fBpb=\fP\fIpb\fP
Specifică numărul de biți de poziție. Minimul este 0 și maximul este 4;
implicit este 2.
.IP ""
\fIPb\fP afectează ce fel de aliniere în datele necomprimate este presupusă în
general. Valoarea implicită înseamnă alinierea pe patru octeți
(2^\fIpb\fP=2^2=4), care este adesea o alegere bună atunci când nu există o
ipoteză mai bună.
.IP ""
Când alinierea este cunoscută, definirea lui \fIpb\fP în mod corespunzător
poate reduce puțin dimensiunea fișierului. De exemplu, cu fișierele text cu
aliniere pe un octet (US\-ASCII, ISO\-8859\-*, UTF\-8), definirea \fBpb=0\fP poate
îmbunătăți ușor comprimarea. Pentru textul UTF\-16, \fBpb=1\fP este o alegere
bună. Dacă alinierea este un număr impar, cum ar fi 3 octeți, \fBpb=0\fP ar
putea fi cea mai bună alegere.
.IP ""
Chiar dacă alinierea presupusă poate fi ajustată cu \fIpb\fP și \fIlp\fP, LZMA1 și
LZMA2 încă favorizează ușor alinierea pe 16 octeți. Ar putea fi demn de
luat în considerare atunci când proiectați formate de fișiere care pot fi
adesea comprimate cu LZMA1 sau LZMA2.
.TP
\fBmf=\fP\fImf\fP
Căutarea potrivirilor are un efect major asupra vitezei codificatorului,
utilizării memoriei și raportului de comprimare. De obicei, găsitorii de
potriviri din lanțul sumelor de control sunt mai rapizi decât găsitorii de
potriviri din arborele binar. Valoarea implicită depinde de \fIprestabilit\fP:
0 folosește \fBhc3\fP, 1\(en3 folosește \fBhc4\fP, iar restul folosește \fBbt4\fP.
.IP ""
Sunt acceptate următoarele opțiuni de căutare de potriviri. Formulele de
utilizare a memoriei de mai jos sunt aproximări estimative, care se apropie
cel mai mult de realitate atunci când \fIdict\fP este o putere a lui doi.
.RS
.TP
\fBhc3\fP
Lanț de sumă de control, cu suma de control de 2 și 3 octeți
.br
Valoarea minimă pentru \fInice\fP: 3
.br
Utilizarea memoriei:
.br
\fIdict\fP * 7.5 (dacă \fIdict\fP <= 16 Mio);
.br
\fIdict\fP * 5.5 + 64 MiB (dacă \fIdict\fP > 16 Mio)
.TP
\fBhc4\fP
Lanț de sumă de control, cu suma de control de 2, 3 și 4 octeți
.br
Valoarea minimă pentru \fInice\fP: 4
.br
Utilizarea memoriei:
.br
\fIdict\fP * 7.5 (dacă \fIdict\fP <= 32 Mio);
.br
\fIdict\fP * 6.5 (dacă \fIdict\fP > 32 Mio)
.TP
\fBbt2\fP
Arbore binar cu suma de control de 2 octeți
.br
Valoarea minimă pentru \fInice\fP: 2
.br
Utilizarea memoriei: \fIdict\fP * 9.5
.TP
\fBbt3\fP
Arbore binar cu suma de control de 2 și 3 octeți
.br
Valoarea minimă pentru \fInice\fP: 3
.br
Utilizarea memoriei:
.br
\fIdict\fP * 11.5 (dacă \fIdict\fP <= 16 Mio);
.br
\fIdict\fP * 9.5 + 64 MiB (dacă \fIdict\fP > 16 Mio)
.TP
\fBbt4\fP
Arbore binar cu suma de control de 2, 3 și 4 octeți
.br
Valoarea minimă pentru \fInice\fP: 4
.br
Utilizarea memoriei:
.br
\fIdict\fP * 11.5 (dacă \fIdict\fP <= 32 Mio);
.br
\fIdict\fP * 10.5 (dacă \fIdict\fP > 32 Mio)
.RE
.TP
\fBmode=\fP\fImod\fP
Comprimarea \fImod\fP specifică metoda de analiză a datelor produse de
găsitorul de potriviri. \fIModurile\fP acceptate sunt \fBfast\fP(rapid) și
\fBnormal\fP. Valoarea implicită este \fBfast\fP pentru \fIprestabiliri\fP 0\(en3 și
\fBnormal\fP pentru \fIprestabiliri\fP 4\(en9.
.IP ""
De obicei, \fBfast\fP este folosit cu instrumentele de căutare de potriviri ale
lanțului de sume de control, și \fBnormal\fP cu instrumentele de căutare de
potriviri din arborele binar. Aceasta este și ceea ce fac
\fIprestabiririle\fP.
.TP
\fBnice=\fP\fInice\fP
Specifică ceea ce este considerat a fi o lungime bună(nice) pentru o
potrivire. Odată ce este găsită o potrivire de cel puțin \fInice\fP octeți,
algoritmul nu mai caută după potriviri posibile mai bune.
.IP ""
\fINice\fP poate fi de 2\(en273 octeți. Valorile mai mari tind să ofere un
raport de comprimare mai bun în detrimentul vitezei. Valoarea implicită
depinde de \fIprestabilit\fP.
.TP
\fBdepth=\fP\fIadâncimea\fP
Specifică adâncimea maximă de căutare în găsitorul de potriviri. Valoarea
implicită este valoarea specială de 0, ceea ce face ca instrumentul de
comprimare să determine o \fIadâncime\fP rezonabilă pornind de la valorile
\fImf\fP și \fInice\fP.
.IP ""
\fIAdâncimea\fP rezonabilă pentru lanțuri de sumă de control este 4\(en100 și
16\(en1000 pentru arbori binari. Folosirea unor valori foarte mari pentru
\fIadâncime\fP poate face codificatorul extrem de lent cu unele fișiere.
Evitați să stabiliți \fIadâncimea\fP la valori peste 1000, cu excepția cazului
în care sunteți pregătit să întrerupeți comprimarea în cazul în care durează
prea mult.
.RE
.IP ""
La decodificarea fluxurilor brute (\fB\-\-format=raw\fP), LZMA2 are nevoie doar
de \fIdimensiunea\fP dicționarului. LZMA1 are nevoie de asemenea de \fIlc\fP,
\fIlp\fP și \fIpb\fP.
.TP
\fB\-\-x86\fP[\fB=\fP\fIopțiuni\fP]
.PD 0
.TP
\fB\-\-arm\fP[\fB=\fP\fIopțiuni\fP]
.TP
\fB\-\-armthumb\fP[\fB=\fP\fIopțiuni\fP]
.TP
\fB\-\-arm64\fP[\fB=\fP\fIopțiuni\fP]
.TP
\fB\-\-powerpc\fP[\fB=\fP\fIopțiuni\fP]
.TP
\fB\-\-ia64\fP[\fB=\fP\fIopțiuni\fP]
.TP
\fB\-\-sparc\fP[\fB=\fP\fIopțiuni\fP]
.PD
Adaugă un filtru de ramură/apel/salt (branch/call/jump ⟶ „BCJ”) la lanțul de
filtre. Aceste filtre pot fi utilizate numai ca un filtru care nu este
ultimul din lanțul de filtrare.
.IP ""
Un filtru BCJ convertește adresele relative din codul mașinii în omoloagele
lor absolute. Acest lucru nu modifică dimensiunea datelor, dar crește
redundanța, ceea ce poate ajuta LZMA2 să producă fișier \fB.xz\fP cu 0\(en15\ %
mai mic. Filtrele BCJ sunt întotdeauna reversibile, deci folosind un filtru
BCJ pentru tipul greșit de date nu provoacă nicio pierdere de date, deși
poate înrăutăți puțin raportul de comprimare. Filtrele BCJ sunt foarte
rapide și folosesc o cantitate nesemnificativă de memorie.
.IP ""
Aceste filtre BCJ au probleme cunoscute legate de raportul de comprimare:
.RS
.IP \(bu 3
Unele tipuri de fișiere care conțin cod executabil (de exemplu, fișiere
obiect, biblioteci statice și module de kernel Linux) au adresele din
instrucțiuni completate cu valori de umplere. Aceste filtre BCJ vor face în
continuare conversia adresei, ceea ce va înrăutăți comprimarea cu aceste
fișiere.
.IP \(bu 3
Dacă pe o arhivă este aplicat un filtru BCJ, este posibil ca raportul de
comprimare să fie mai rău decât la neutilizarea unui filtru BCJ. De
exemplu, dacă există executabile similare sau chiar identice, filtrarea va
face probabil fișierele mai puțin asemănătoare și astfel comprimarea este
mai proastă. Conținutul fișierelor neexecutabile din aceeași arhivă poate
conta și el. În practică, trebuie să încercați cu și fără filtru BCJ pentru
a vedea care rezultat este mai bun în fiecare situație.
.RE
.IP ""
Seturi de instrucțiuni diferite au o aliniere diferită: fișierul executabil
trebuie aliniat la un multiplu al acestei valori în datele de intrare pentru
ca filtrul să funcționeze.
.RS
.RS
.PP
.TS
tab(;);
l n l
l n l.
Filtru;Aliniere;Note
x86;1;x86 pe 32 de biți
;;sau 64 de biți
ARM;4;
ARM\-Thumb;2;
ARM64;4;alinierea pe 4096\-octeți
;;este cea mai bună
PowerPC;4;Doar big endian
IA\-64;16;Itanium
SPARC;4;
.TE
.RE
.RE
.IP ""
Deoarece datele filtrate prin BCJ sunt de obicei comprimate cu LZMA2,
raportul de comprimare poate fi ușor îmbunătățit dacă opțiunile LZMA2 sunt
definite pentru a se potrivi cu alinierea filtrului BCJ selectat. De
exemplu, cu filtrul IA\-64, este bine să stabiliți \fBpb=4\fP sau chiar
\fBpb=4,lp=4,lc=0\fP cu LZMA2 (2^4=16). Filtrul x86 este o excepție; de
obicei, este bine să rămână la alinierea implicită de patru octeți a LZMA2
atunci când se comprimă executabile x86.
.IP ""
Toate filtrele BCJ acceptă același \fIopțiuni\fP:
.RS
.TP
\fBstart=\fP\fIpoziție\fP
Specifică \fIpoziția\fP de pornire care este utilizată la conversia între
adresele relative și absolute. \fIPoziția\fP trebuie să fie un multiplu al
alinierii filtrului (consultați tabelul de mai sus). Valoarea implicită
este zero. În practică, valoarea implicită este bună; specificarea unei
\fIpoziții\fP personalizate nu este aproape niciodată utilă.
.RE
.TP
\fB\-\-delta\fP[\fB=\fP\fIopțiuni\fP]
Adaugă filtrul Delta în lanțul de filtrare. Filtrul Delta poate fi folosit
doar ca un filtru care nu este ultimul în lanțul de filtrare.
.IP ""
În prezent, este acceptat doar calculul delta simplu de octeți. Poate fi
util la comprimarea, de exemplu, a imaginilor bitmap necomprimate sau a
sunetului PCM necomprimat. Cu toate acestea, algoritmii cu scop special pot
da rezultate semnificativ mai bune decât Delta + LZMA2. Acest lucru este
valabil mai ales în cazul audio, care se comprimă mai repede și mai bine, de
exemplu, cu \fBflac\fP(1).
.IP ""
\fIOpțiuni\fP acceptate:
.RS
.TP
\fBdist=\fP\fIdistanța\fP
Specifică \fIdistanța\fP calculului delta în octeți. \fIDistanța\fP trebuie să
fie 1\(en256. Valoarea implicită este 1.
.IP ""
De exemplu, cu \fBdist=2\fP și intrare de opt octeți: A1 B1 A2 B3 A3 B5 A4 B7,
ieșirea va fi: A1 B1 01 02 01 02 01 02.
.RE
.
.SS "Alte opțiuni"
.TP
\fB\-q\fP, \fB\-\-quiet\fP
Suprimă avertismentele și notificările. Specificați acest lucru de două ori
pentru a suprima și erorile. Această opțiune nu are niciun efect asupra
stării de ieșire. Adică, chiar dacă o avertizare a fost suprimată, starea
de ieșire pentru a indica o avertizare este încă utilizată.
.TP
\fB\-v\fP, \fB\-\-verbose\fP
Oferă informații detaliate. Dacă ieșirea de eroare standard este conectată
la un terminal, \fBxz\fP va afișa un indicator de progres. Specificarea
opțiunii \fB\-\-verbose\fP de două ori, va avea ca rezultat oferirea de
informații și mai detaliate.
.IP ""
Indicatorul de progres afișează următoarele informații:
.RS
.IP \(bu 3
Procentul de completare este afișat dacă se cunoaște dimensiunea fișierului
de intrare. Adică, procentul nu poate fi afișat la procesarea fișierului
prin conducte(pipe).
.IP \(bu 3
Cantitatea de date comprimate produse (comprimare) sau consumate
(decomprimare).
.IP \(bu 3
Cantitatea de date necomprimate consumate (comprimare) sau produse
(decomprimare).
.IP \(bu 3
Raportul de comprimare, care se calculează împărțind cantitatea de date
comprimate procesate până acum la cantitatea de date necomprimate procesate
până acum.
.IP \(bu 3
Viteza de comprimare sau decomprimare. Aceasta este măsurată drept
cantitatea de date necomprimate consumate (comprimare) sau produse
(decomprimare) pe secundă. Este afișată după ce au trecut câteva secunde de
când \fBxz\fP a început procesarea fișierului.
.IP \(bu 3
Timpul scurs în format M:SS sau H:MM:SS.
.IP \(bu 3
Timpul rămas estimat este afișat numai atunci când dimensiunea fișierului de
intrare este cunoscută și au trecut deja câteva secunde de când \fBxz\fP a
început procesarea fișierului. Ora este afișată într\-un format mai puțin
precis, care nu are niciodată două puncte, de exemplu, 2 min 30 s.
.RE
.IP ""
Când ieșirea de eroare standard nu este un terminal, \fB\-\-verbose\fP va face
\fBxz\fP să imprime numele fișierului, dimensiunea comprimată, dimensiunea
necomprimată, raportul de comprimare și, eventual, de asemenea, viteza și
timpul scurs pe o singură linie la ieșirea de eroare standard după
comprimarea sau decomprimarea fișierului. Viteza și timpul scurs sunt
incluse numai atunci când operațiunea a durat cel puțin câteva secunde.
Dacă operațiunea nu s\-a încheiat, de exemplu, din cauza întreruperii din
partea utilizatorului, se imprimă și procentul de completare dacă se
cunoaște dimensiunea fișierului de intrare.
.TP
\fB\-Q\fP, \fB\-\-no\-warn\fP
Nu comută starea de ieșire la 2 chiar dacă a fost detectată o condiție care
merită avertizată. Această opțiune nu afectează nivelul de detaliere al
informațiilor, astfel încât atât \fB\-\-quiet\fP cât și \fB\-\-no\-warn\fP trebuie
folosite pentru a nu afișa avertismente și pentru a nu modifica starea de
ieșire.
.TP
\fB\-\-robot\fP
Afișează mesajele într\-un format care poate fi analizat de mașină. Acest
lucru are scopul de a ușura scrierea interfețelor în care se dorește să se
folosească \fBxz\fP în loc de liblzma, ceea ce poate fi cazul cu diferite
scripturi. Ieșirea cu această opțiune activată este menită să fie stabilă
în toate versiunile \fBxz\fP. Consultați secțiunea \fBMOD ROBOT\fP pentru
detalii.
.TP
\fB\-\-info\-memory\fP
Afișează, într\-un format care poate fi citit de om, câtă memorie fizică
(RAM) și câte fire de execuție de procesor \fBxz\fP crede că are sistemul și
limitele de utilizare a memoriei pentru comprimare și decomprimare și iese
cu succes.
.TP
\fB\-h\fP, \fB\-\-help\fP
Afișează un mesaj de ajutor care descrie opțiunile cele mai frecvent
utilizate și iese cu succes.
.TP
\fB\-H\fP, \fB\-\-long\-help\fP
Afișează un mesaj de ajutor care descrie toate caracteristicile \fBxz\fP și
iese cu succes
.TP
\fB\-V\fP, \fB\-\-version\fP
Afișează numărul versiunii \fBxz\fP și liblzma într\-un format care poate fi
citit de om. Pentru a obține rezultate analizabile de mașină, specificați
\fB\-\-robot\fP înainte de \fB\-\-version\fP.
.
.SH "MOD ROBOT"
Modul robot este activat cu opțiunea \fB\-\-robot\fP. Face ieșirea lui \fBxz\fP mai
ușor de analizat de către alte programe. În prezent, opțiunea \fB\-\-robot\fP
este acceptată numai împreună cu opțiunile \fB\-\-version\fP, \fB\-\-info\-memory\fP și
\fB\-\-list\fP. Va fi acceptată pentru comprimare și decomprimare în viitor.
.
.SS Versiunea
\fBxz \-\-robot \-\-version\fP va afișa numărul versiunii \fBxz\fP și liblzma în
următorul format:
.PP
\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
.br
\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
.TP
\fIX\fP
Versiunea majoră.
.TP
\fIYYY\fP
Versiunea minoră. Numerele pare sunt prezente în versiunile stabile.
Numerele impare sunt prezente în versiunile alfa sau beta.
.TP
\fIZZZ\fP
Nivelul de plasture(patch) pentru versiunile stabile sau doar un contor
pentru versiunile de dezvoltare.
.TP
\fIS\fP
Stabilitate. 0 este alfa, 1 este beta și 2 este stabil. \fIS\fP trebuie să
fie întotdeauna 2 atunci când \fIAAA\fP este par.
.PP
\fIXYYYZZZS\fP sunt aceleași pe ambele linii dacă \fBxz\fP și liblzma sunt din
aceeași versiune XZ Utils.
.PP
Exemple: 4.999.9beta este \fB49990091\fP și 5.0.0 este \fB50000002\fP.
.
.SS "Informații privind limita memoriei"
\fBxz \-\-robot \-\-info\-memory\fP tipărește o singură linie cu trei coloane
separate prin tabulatori:
.IP 1. 4
Cantitatea totală de memorie fizică (RAM) în octeți.
.IP 2. 4
Limita de utilizare a memoriei pentru comprimare în octeți
(\fB\-\-memlimit\-compress\fP). O valoare specială de \fB0\fP indică configurarea
implicită, care pentru modul cu un singur fir este la fel ca fără limită.
.IP 3. 4
Limita de utilizare a memoriei pentru decomprimare în octeți
(\fB\-\-memlimit\-decompress\fP). O valoare specială de \fB0\fP indică configurarea
implicită, care pentru modul cu un singur fir este la fel ca fără limită.
.IP 4. 4
Începând cu \fBxz\fP 5.3.4alpha: Utilizarea memoriei pentru decomprimarea cu
mai multe fire în octeți (\fB\-\-memlimit\-mt\-decompress\fP). Acesta nu este
niciodată zero, deoarece o valoare implicită specifică sistemului afișată în
coloana 5 este utilizată dacă nu a fost specificată în mod explicit nicio
limită. De asemenea, aceasta nu este niciodată mai mare decât valoarea din
coloana 3, chiar dacă a fost specificată o valoare mai mare cu
\fB\-\-memlimit\-mt\-decompress\fP.
.IP 5. 4
Începând cu \fBxz\fP 5.3.4alpha: o limită implicită de utilizare a memoriei
specifică sistemului, care este utilizată pentru a limita numărul de fire de
execuție atunci când se comprimă cu un număr automat de fire de execuție
(\fB\-\-threads=0\fP) și nicio limită de utilizare a memoriei nu fost specificată
cu (\fB\-\-memlimit\-compress\fP). Aceasta este, de asemenea, utilizată ca
valoare implicită pentru \fB\-\-memlimit\-mt\-decompress\fP.
.IP 6. 4
Începând cu \fBxz\fP 5.3.4alpha: numărul de fire de execuție de procesor
disponibile.
.PP
În viitor, rezultatul \fBxz \-\-robot \-\-info\-memory\fP poate avea mai multe
coloane, dar niciodată mai mult de o singură linie.
.
.SS "Modul listă"
\fBxz \-\-robot \-\-list\fP utilizează o ieșire separată de tabulatori. Prima
coloană a fiecărei linii are un șir care indică tipul de informații găsite
pe acea linie:
.TP
\fBname\fP
Aceasta este întotdeauna prima linie când începe să se listeze un fișier. A
doua coloană de pe linie este numele fișierului.
.TP
\fBfile\fP
Această linie conține informații generale despre fișierul \fB.xz\fP. Această
linie este întotdeauna tipărită după linia \fBname\fP.
.TP
\fBstream\fP
Acest tip de linie este utilizat numai atunci când a fost specificată
opțiunea \fB\-\-verbose\fP. Există tot atâtea linii \fBstream\fP câte fluxuri
există în fișierul \fB.xz\fP.
.TP
\fBblock\fP
Acest tip de linie este utilizat numai atunci când a fost specificată
opțiunea \fB\-\-verbose\fP. Există tot atâtea linii \fBblock\fP câte blocuri există
în fișierul \fB.xz\fP. Liniile \fBblock\fP sunt afișate după toate liniile
\fBstream\fP; tipurile diferite de linii nu sunt intercalate.
.TP
\fBsummary\fP
Acest tip de linie este folosit numai atunci când opțiunea \fB\-\-verbose\fP a
fost specificată de două ori. Această linie este afișată după toate liniile
\fBblock\fP. Ca și linia \fBfile\fP, linia \fBsummary\fP conține informații generale
despre fișierul \fB.xz\fP.
.TP
\fBtotals\fP
Această linie este întotdeauna ultima linie din lista afișată la ieșire.
Aceasta arată numărul total și dimensiunile.
.PP
Coloanele din liniile \fBfile\fP:
.PD 0
.RS
.IP 2. 4
Numărul de fluxuri din fișier
.IP 3. 4
Numărul total de blocuri din fluxuri
.IP 4. 4
Dimensiunea comprimată a fișierului
.IP 5. 4
Dimensiunea necomprimată a fișierului
.IP 6. 4
Raportul de comprimare, de exemplu, \fB0,123\fP. Dacă raportul este peste
9,999, în locul raportului sunt afișate trei liniuțe (\fB\-\-\-\fP).
.IP 7. 4
Lista de nume de verificare a integrității, separate prin virgule.
Următoarele șiruri sunt utilizate pentru tipurile de verificare cunoscute:
\fBNone\fP, \fBCRC32\fP, \fBCRC64\fP și \fBSHA\-256\fP. Pentru tipurile de verificări
necunoscute, se utilizează \fBNone\-\fP\fIN\fP, unde \fIN\fP este ID\-ul de verificare
ca număr zecimal (una sau două cifre).
.IP 8. 4
Dimensiunea totală a umpluturii fluxului din fișier
.RE
.PD
.PP
Coloanele din liniile \fBstream\fP:
.PD 0
.RS
.IP 2. 4
Numărul fluxului (primul flux este 1)
.IP 3. 4
Numărul de blocuri din flux
.IP 4. 4
Poziția de pornire a comprimării
.IP 5. 4
Poziția de pornire a decomprimării
.IP 6. 4
Dimensiune comprimată (nu include umplutura fluxului)
.IP 7. 4
Dimensiune necomprimată
.IP 8. 4
Raport de comprimare
.IP 9. 4
Numele verificării de integritate
.IP 10. 4
Dimensiunea umpluturii fluxului
.RE
.PD
.PP
Coloanele din liniile \fBblock\fP:
.PD 0
.RS
.IP 2. 4
Numărul fluxului care conține acest bloc
.IP 3. 4
Numărul blocului în raport cu începutul fluxului (primul bloc este 1)
.IP 4. 4
Numărul blocului în raport cu începutul fișierului
.IP 5. 4
Poziția de pornire a comprimării în raport cu începutul fișierului
.IP 6. 4
Poziția de pornire necomprimată în raport cu începutul fișierului
.IP 7. 4
Dimensiunea totală comprimată a blocului (include antetele)
.IP 8. 4
Dimensiune necomprimată
.IP 9. 4
Raport de comprimare
.IP 10. 4
Numele verificării de integritate
.RE
.PD
.PP
Dacă opțiunea \fB\-\-verbose\fP a fost specificată de două ori, coloane
suplimentare sunt incluse pe liniile \fBblock\fP. Acestea nu sunt afișate cu o
singură specificare a opțiunii \fB\-\-verbose\fP, deoarece obținerea acestor
informații necesită multe căutări și, prin urmare, poate fi lentă:
.PD 0
.RS
.IP 11. 4
Valoarea verificării integrității în hexazecimal
.IP 12. 4
Dimensiunea antetului blocului
.IP 13. 4
Indicatori de bloc: \fBc\fP indică faptul că este prezentă dimensiunea
comprimată, iar \fBu\fP indică faptul că este prezentă dimensiunea
necomprimată. Dacă indicatorul nu este determinat, este afișată o liniuță
(\fB\-\fP) pentru a menține lungimea șirului fixă. Pot fi adăugate noi
indicatoare la sfârșitul șirului, în viitor.
.IP 14. 4
Dimensiunea datelor comprimate reale din bloc (acest lucru exclude antetul
blocului, umplutura blocului și câmpurile de verificare)
.IP 15. 4
Cantitatea de memorie (în octeți) necesară pentru a decomprima acest bloc cu
această versiune \fBxz\fP
.IP 16. 4
Lanț de filtrare. Rețineți că majoritatea opțiunilor utilizate în timpul
comprimării nu pot fi cunoscute, deoarece doar opțiunile necesare pentru
decomprimare sunt stocate în anteturile \fB.xz\fP.
.RE
.PD
.PP
Coloanele din liniile \fBsummary\fP:
.PD 0
.RS
.IP 2. 4
Cantitatea de memorie (în octeți) necesară pentru a decomprima acest fișier
cu această versiune \fBxz\fP
.IP 3. 4
\fByes\fP sau \fBno\fP indicând dacă toate antetele blocurilor au atât dimensiunea
comprimată, cât și dimensiunea necomprimată stocate în ele
.PP
\fIÎncepând cu\fP \fBxz\fP \fI5.1.2alpha:\fP
.IP 4. 4
Versiunea \fBxz\fP minimă necesară pentru a decomprima fișierul
.RE
.PD
.PP
Coloanele din linia \fBtotals\fP:
.PD 0
.RS
.IP 2. 4
Numărul de fluxuri
.IP 3. 4
Numărul de blocuri
.IP 4. 4
Dimensiunea comprimată
.IP 5. 4
Dimensiune necomprimată
.IP 6. 4
Raportul mediu de comprimare
.IP 7. 4
Lista de nume de verificare a integrității, separate prin virgule, care au
fost prezente în fișiere
.IP 8. 4
Dimensiunea umpluturii fluxului
.IP 9. 4
Numărul de fișiere. Aceasta este aici pentru a păstra ordinea coloanelor
anterioare la fel ca pe liniile \fBfile\fP.
.PD
.RE
.PP
Dacă opțiunea \fB\-\-verbose\fP a fost specificată de două ori, pe linia
\fBtotals\fP sunt incluse coloane suplimentare:
.PD 0
.RS
.IP 10. 4
Cantitatea maximă de memorie (în octeți) necesară pentru a decomprima
fișierele cu această versiune \fBxz\fP
.IP 11. 4
\fByes\fP sau \fBno\fP indicând dacă toate antetele blocurilor au atât dimensiunea
comprimată, cât și dimensiunea necomprimată stocate în ele
.PP
\fIÎncepând cu\fP \fBxz\fP \fI5.1.2alpha:\fP
.IP 12. 4
Versiunea \fBxz\fP minimă necesară pentru a decomprima fișierul
.RE
.PD
.PP
Versiunile viitoare pot adăuga noi tipuri de linii și pot fi adăugate
coloane noi la tipurile de linii existente, dar coloanele existente nu vor
fi modificate.
.
.SH "STARE DE IEȘIRE"
.TP
\fB0\fP
Totul este bine.
.TP
\fB1\fP
A apărut o eroare.
.TP
\fB2\fP
A apărut ceva care merită să fie avertizat, dar nu au apărut erori reale.
.PP
Notificările (nu avertismentele sau erorile) afișate la ieșirea de eroare
standard nu afectează starea de ieșire.
.
.SH "VARIABILE DE MEDIU"
\fBxz\fP analizează liste de opțiuni separate prin spații din variabilele de
mediu \fBXZ_DEFAULTS\fP și \fBXZ_OPT\fP, în această ordine, înainte de a analiza
opțiunile din linia de comandă. Rețineți că numai opțiunile sunt analizate
din variabilele de mediu; toate non\-opțiunile sunt ignorate în tăcere.
Analiza se face cu funcția \fBgetopt_long\fP(3) care este folosită și pentru
argumentele liniei de comandă.
.TP
\fBXZ_DEFAULTS\fP
Opțiuni implicite specifice utilizatorului sau la nivelul întregului
sistem. De obicei, acest lucru este specificat într\-un script de
inițializare shell pentru a activa limitatorul de utilizare a memoriei lui
\fBxz\fP implicit. Excluzând scripturile de inițializare shell și cazurile
speciale similare, scripturile nu trebuie niciodată să modifice sau să
dezactiveze \fBXZ_DEFAULTS\fP.
.TP
\fBXZ_OPT\fP
Acest lucru este pentru transmiterea opțiunilor către \fBxz\fP atunci când nu
este posibil să definiți opțiunile direct în linia de comandă a \fBxz\fP.
Acesta este cazul când \fBxz\fP este rulat de un script sau de un instrument,
de exemplu, GNU \fBtar\fP(1):
.RS
.RS
.PP
.nf
\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
.fi
.RE
.RE
.IP ""
Scripturile pot folosi \fBXZ_OPT\fP, de exemplu, pentru a configura opțiunile
implicite de comprimare specifice scriptului. Se recomandă totuși să se
permită utilizatorilor să înlocuiască \fBXZ_OPT\fP dacă acest lucru este
rezonabil. De exemplu, în scripturile \fBsh\fP(1) se poate folosi ceva de
genul acesta:
.RS
.RS
.PP
.nf
\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
.fi
.RE
.RE
.
.SH "COMPATIBILITATE CU LZMA\-UTILS"
Sintaxa liniei de comandă a lui \fBxz\fP este practic o super\-colecție de
\fBlzma\fP, \fBunlzma\fP și \fBlzcat\fP așa cum se găsește în LZMA Utils 4.32.x. În
cele mai multe cazuri, este posibil să înlocuiți LZMA Utils cu XZ Utils fără
a întrerupe scripturile existente. Există totuși unele incompatibilități,
care uneori pot cauza probleme.
.
.SS "Niveluri de comprimare prestabilite"
Numerotarea nivelurilor de comprimare prestabilite nu este identică în \fBxz\fP
și LZMA Utils. Cea mai importantă diferență este modul în care dimensiunile
dicționarului sunt atribuite diferitelor niveluri prestabilite. Dimensiunea
dicționarului este aproximativ egală cu memoria utilizată la decomprimare.
.RS
.PP
.TS
tab(;);
c c c
c n n.
Nivel;xz;LZMA Utils
\-0;256 KiB;N/A
\-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
Diferențele de dimensiune a dicționarului afectează deasemenea cantitatea de
memorie utilizată la comprimare dar există și alte diferențe între LZMA
Utils și XZ Utils, care fac diferența și mai mare:
.RS
.PP
.TS
tab(;);
c c c
c n n.
Nivel;xz;LZMA Utils 4.32.x
\-0;3 MiB;N/A
\-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
Nivelul prestabilit implicit în LZMA Utils este \fB\-7\fP, în timp ce în XZ
Utils este \fB\-6\fP, deci ambele folosesc un dicționar de 8Mio în mod implicit.
.
.SS "Fișiere .lzma transmise în flux vs. netransmise în flux"
Dimensiunea necomprimată a fișierului poate fi stocată în antetul \fB.lzma\fP.
LZMA Utils face asta atunci când comprimă fișiere obișnuite. Alternativa
este să marcați că dimensiunea necomprimată este necunoscută și să folosiți
marcajul de sfârșit de încărcare pentru a indica unde ar trebui să se
oprească decomprimarea. LZMA Utils folosește această metodă atunci când
dimensiunea necomprimată nu este cunoscută, ceea ce este cazul, de exemplu,
când se folosesc conducte.
.PP
\fBxz\fP acceptă decomprimarea fișierelor \fB.lzma\fP cu sau fără marcaj de
sfârșit de încărcare, dar toate fișierele \fB.lzma\fP create de \fBxz\fP vor
folosi marcajul de sfârșit de încărcare și vor avea dimensiunea necomprimată
marcată ca necunoscută în antetul \fB.lzma\fP. Aceasta poate fi o problemă în
unele situații mai puțin frecvente. De exemplu, un instrument de
decomprimare \fB.lzma\fP încorporat într\-un dispozitiv poate funcționa numai cu
fișiere care au dimensiunea necomprimată cunoscută. Dacă întâmpinați
această problemă, trebuie să utilizați LZMA Utils sau LZMA SDK pentru a crea
fișiere \fB.lzma\fP cu dimensiunea necomprimată cunoscută.
.
.SS "Fișiere .lzma neacceptate"
Formatul \fB.lzma\fP permite valori \fIlc\fP de până la 8 și valori \fIlp\fP de până
la 4. LZMA Utils poate decomprima fișiere cu orice \fIlc\fP și \fIlp\fP, dar
creează întotdeauna fișiere cu \fBlc=3\fP și \fBlp=0\fP. Crearea de fișiere cu
alte \fIlc\fP și \fIlp\fP este posibilă cu \fBxz\fP și cu LZMA SDK.
.PP
Implementarea filtrului LZMA1 în liblzma necesită ca suma \fIlc\fP și \fIlp\fP să
nu depășească 4. Altfel, fișierele \fB.lzma\fP, care depășesc această
limitare, nu pot fi decomprimate cu \fBxz\fP.
.PP
LZMA Utils creează numai fișiere \fB.lzma\fP care au o dimensiune de dicționar
de 2^\fIn\fP (o putere de 2), dar acceptă fișiere cu orice dimensiune de
dicționar. liblzma acceptă numai fișierele \fB.lzma\fP care au dimensiunea de
dicționar de 2^\fIn\fP sau 2^\fIn\fP + 2^(\fIn\fP\-1). Acest lucru este pentru a
reduce numărul de „fals pozitiv” atunci când se detectează fișiere \fB.lzma\fP.
.PP
Aceste limitări nu ar trebui să fie o problemă în practică, deoarece practic
toate fișierele \fB.lzma\fP au fost comprimate cu opțiuni pe care liblzma le va
accepta.
.
.SS "Resturi rămase"
Când decomprimă, LZMA Utils ignoră în tăcere totul după primul flux
\&\fB.lzma\fP. În majoritatea situațiilor, aceasta este o eroare. Aceasta
înseamnă, de asemenea, că LZMA Utils nu acceptă decomprimarea fișierelor
\&\fB.lzma\fP concatenate.
.PP
Dacă au rămas date după primul flux \fB.lzma\fP, \fBxz\fP consideră că fișierul
este corupt, cu excepția cazului în care a fost utilizată opțiunea
\fB\-\-single\-stream\fP. Acest lucru poate rupe scripturile obscure(scrise
deficitar) care presupun că resturile rămase sunt ignorate.
.
.SH NOTE
.
.SS "Rezultatul comprimării poate varia"
Ieșirea exactă comprimată produsă din același fișier de intrare necomprimat
poate varia între versiunile XZ Utils, chiar dacă opțiunile de comprimare
sunt identice. Acest lucru se datorează faptului că instrumentul
codificator poate fi îmbunătățit (comprimare mai rapidă sau mai bună) fără a
afecta formatul fișierului. Ieșirea poate varia chiar și între compilările
diferite ale aceleiași versiuni XZ Utils, dacă sunt utilizate opțiuni
diferite de compilare.
.PP
Cele de mai sus înseamnă că odată ce opțiunea \fB\-\-rsyncable\fP a fost
utilizată, fișierele rezultate nu vor fi neapărat sincronizate cu rsync
decât dacă atât fișierele vechi, cât și cele noi au fost comprimate cu
aceeași versiune xz. Această problemă poate fi remediată dacă o parte a
implementării codificatorului este înghețată pentru a menține stabilă
ieșirea „rsyncabilă” între versiunile xz.
.
.SS "Instrumente de decomprimare .xz încorporate"
Implementările instrumentului de decomprimare \fB.xz\fP încorporat, cum ar fi
XZ Embedded, nu acceptă neapărat fișiere create cu tipuri de \fIverificare\fP a
integrității, altele decât \fBnone\fP și \fBcrc32\fP. Deoarece valoarea implicită
este \fB\-\-check=crc64\fP, trebuie să utilizați \fB\-\-check=none\fP sau
\fB\-\-check=crc32\fP atunci când creați fișiere pentru sistemele încorporate.
.PP
În afara sistemelor încorporate, toate instrumentele de decomprimare în
format \fB.xz\fP acceptă toate tipurile de \fIverificare\fP sau cel puțin pot
decomprima fișierul fără a efectua verificarea integrității dacă acel tip de
\fIverificare\fP nu este acceptat.
.PP
XZ Embedded acceptă filtre BCJ, dar numai cu poziție de pornire implicită.
.
.SH EXEMPLE
.
.SS Bazice
Comprimă fișierul \fIfoo\fP în \fIfoo.xz\fP folosind nivelul de comprimare
implicit (\fB\-6\fP) și elimină fișierul \fIfoo\fP dacă comprimarea are succes:
.RS
.PP
.nf
\f(CWxz foo\fP
.fi
.RE
.PP
Decomprimă \fIbar.xz\fP în \fIbar\fP și nu elimină \fIbar.xz\fP chiar dacă
decomprimarea este efectuată cu succes:
.RS
.PP
.nf
\f(CWxz \-dk bar.xz\fP
.fi
.RE
.PP
Creează \fIbaz.tar.xz\fP cu nivelul prestabilit \fB\-4e\fP (\fB\-4 \-\-extreme\fP), care
este mai lent decât nivelul prestabilit implicit \fB\-6\fP, dar necesită mai
puțină memorie pentru comprimare și decomprimare (48Mio și, respectiv,
5Mio):
.RS
.PP
.nf
\f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP
.fi
.RE
.PP
Un amestec de fișiere comprimate și necomprimate poate fi decomprimat la
ieșirea standard cu o singură comandă:
.RS
.PP
.nf
\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
.fi
.RE
.
.SS "Comprimarea în paralel a mai multor fișiere"
În sisteme GNU și *BSD, \fBfind\fP(1) și \fBxargs\fP(1) pot fi utilizate pentru a
paraleliza comprimarea mai multor fișiere:
.RS
.PP
.nf
\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP
.fi
.RE
.PP
Opțiunea \fB\-P\fP pentru comanda \fBxargs\fP(1) stabilește numărul de procese
paralele \fBxz\fP. Cea mai bună valoare pentru opțiunea \fB\-n\fP depinde de câte
fișiere trebuie să fie comprimate. Dacă există doar câteva fișiere,
valoarea ar trebui probabil să fie 1; cu zeci de mii de fișiere, 100 sau
chiar mai mult poate să fie valoarea potrivită pentru a reduce numărul de
procese \fBxz\fP pe care \fBxargs\fP(1) le va crea în final.
.PP
Opțiunea \fB\-T1\fP pentru \fBxz\fP este acolo pentru a\-l forța să ruleze în modul
cu un singur fir de execuție, deoarece \fBxargs\fP(1) este folosit pentru a
controla cantitatea de paralelizare.
.
.SS "Modul robot"
Calculează câți octeți au fost salvați în total după comprimarea mai multor
fișiere:
.RS
.PP
.nf
\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
.fi
.RE
.PP
Un script poate dori să afle dacă folosește o versiune \fBxz\fP suficient de
nouă. Următorul script \fBsh\fP(1) verifică dacă numărul versiunii
instrumentului \fBxz\fP este cel puțin 5.0.0. Această metodă este compatibilă
cu versiunile beta vechi, care nu acceptau opțiunea \fB\-\-robot\fP:
.RS
.PP
.nf
\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Versiunea dumneavoastră de „xz” este prea veche!" fi unset XZ_VERSION LIBLZMA_VERSION\fP
.fi
.RE
.PP
Stabilește o limită de utilizare a memoriei pentru decomprimare folosind
variabila de mediu \fBXZ_OPT\fP, dar dacă o limită a fost deja stabilită, nu o
mărește:
.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 "Lanțuri de filtrare personalizate pentru instrumentul de comprimare"
Cea mai simplă utilizare a lanțurilor de filtrare personalizate este
personalizarea unei opțiuni prestabilite LZMA2. Acest lucru poate fi util,
deoarece opțiunile prestabilite acoperă doar un subset al combinațiilor
potențial utile de opțiuni de comprimare.
.PP
Coloanele CPUComp din tabelele de descriere a opțiunilor \fB\-0\fP ... \fB\-9\fP și
\fB\-\-extreme\fP sunt utile atunci când personalizați opțiunilor prestabilite
LZMA2. Iată părțile relevante colectate din aceste două tabele:
.RS
.PP
.TS
tab(;);
c c
n n.
ValPrestab;CPUComp
\-0;0
\-1;1
\-2;2
\-3;3
\-4;4
\-5;5
\-6;6
\-5e;7
\-6e;8
.TE
.RE
.PP
Dacă știți că un fișier necesită un dicționar oarecum mare (de exemplu,
32Mio) pentru a se comprima bine, dar doriți să\-l comprimați mai repede
decât ar face \fBxz \-8\fP, o opțiune prestabilită cu o valoare CPUComp scăzută
(de exemplu, 1) poate fi modificată pentru a utiliza un dicționar mai mare:
.RS
.PP
.nf
\f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP
.fi
.RE
.PP
Cu anumite fișiere, comanda de mai sus poate fi mai rapidă decât \fBxz \-6\fP în
timp ce comprimă semnificativ mai bine. Cu toate acestea, trebuie subliniat
că doar unele fișiere se beneficiază de un dicționar mare, păstrând în
același timp valoarea CPUComp scăzută. Cea mai evidentă situație, în care
un dicționar mare poate ajuta foarte mult, este o arhivă care conține
fișiere foarte asemănătoare de cel puțin câțiva megaocteți fiecare.
Dimensiunea dicționarului trebuie să fie semnificativ mai mare decât orice
fișier individual pentru a permite LZMA2 să profite din plin de asemănările
dintre fișierele consecutive.
.PP
Dacă utilizarea unei mari cantități de memorie pentru comprimare și
decomprimare este în regulă, iar fișierul comprimat are cel puțin câteva
sute de megaocteți, poate fi util să folosiți un dicționar și mai mare decât
cei 64Mio pe care i\-ar folosi \fBxz \-9\fP:
.RS
.PP
.nf
\f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP
.fi
.RE
.PP
Utilizarea opțiunii \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) ca în exemplul de mai
sus, poate fi utilă pentru a vedea cerințele de memorie la comprimare și
decomprimare. Amintiți\-vă că utilizarea unui dicționar mai mare decât
dimensiunea fișierului necomprimat este risipă de memorie, de aceea, comanda
de mai sus nu este utilă pentru fișiere mici.
.PP
Uneori, timpul de comprimare nu contează, dar utilizarea memoriei la
decomprimare trebuie menținută la un nivel scăzut, de exemplu, pentru a face
posibilă decomprimarea fișierului pe un sistem încorporat. Următoarea
comandă folosește \fB\-6e\fP (\fB\-6 \-\-extreme\fP) ca bază și fixează dimensiunea
dicționarului la doar 64Kio. Fișierul rezultat poate fi decomprimat cu XZ
Embedded (de aceea există \fB\-\-check=crc32\fP) folosind aproximativ 100Kio de
memorie.
.RS
.PP
.nf
\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP
.fi
.RE
.PP
Dacă doriți să stoarceți cât mai mulți octeți posibil, ajustarea numărului
de biți de context literal (\fIlc\fP) și a numărului de biți de poziție (\fIpb\fP)
poate ajuta uneori. Ajustarea numărului de biți de poziție literală (\fIlp\fP)
ar putea ajuta, de asemenea, dar de obicei \fIlc\fP și \fIpb\fP sunt mai
importante. De exemplu, o arhivă de cod sursă conține în mare parte text
US\-ASCII, așa că ceva precum comanda următoare, ar putea oferi un fișier
„mai slăbuț” (aproximativ cu 0,1%) mai mic decât cu \fBxz \-6e\fP (încercați și
fără \fBlc=4\fP):
.RS
.PP
.nf
\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 fișierul_sursă.tar\fP
.fi
.RE
.PP
Utilizarea unui alt filtru împreună cu LZMA2 poate îmbunătăți comprimarea cu
anumite tipuri de fișiere. De exemplu, pentru a comprima o bibliotecă
partajată x86 pe 32 de biți sau x86 pe 64 de biți folosind filtrul BCJ x86:
.RS
.PP
.nf
\f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP
.fi
.RE
.PP
Rețineți că ordinea opțiunilor de filtrare este semnificativă. Dacă
\fB\-\-x86\fP este specificată după \fB\-\-lzma2\fP, \fBxz\fP va da o eroare, deoarece nu
poate exista niciun filtru după LZMA2 și, de asemenea, pentru că filtrul x86
BCJ nu poate fi utilizat ca ultimul filtru din lanțul de filtrare.
.PP
Filtrul Delta împreună cu LZMA2 pot da rezultate bune cu imagini bitmap. De
obicei, ar trebui să întreacă comprimarea PNG, care are câteva filtre mai
avansate decât delta simplă, dar utilizează Deflate pentru comprimarea
reală.
.PP
Imaginea trebuie să fie salvată în format necomprimat, de exemplu, ca TIFF
necomprimat. Parametrul de distanță al filtrului Delta este fixat să se
potrivească cu numărul de octeți per pixel din imagine. De exemplu,
bitmap\-ul RGB pe 24 de biți necesită \fBdist=3\fP și este, de asemenea, bine să
pasați \fBpb=0\fP la LZMA2 pentru a se adapta alinierii pe trei octeți:
.RS
.PP
.nf
\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP
.fi
.RE
.PP
Dacă mai multe imagini au fost introduse într\-o singură arhivă (de exemplu,
\&\fB.tar\fP), filtrul Delta va funcționa și pe aceasta atâta timp cât toate
imaginile au același număr de octeți per pixel.
.
.SH "CONSULTAȚI ȘI"
\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:
.br
XZ Embedded:
.br
LZMA SDK: