Spaces:
Running
Running
'\" t | |
.\" | |
.\" Authors: Lasse Collin | |
.\" Jia Tan | |
.\" | |
.\" 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 17.07.2023 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. | |
.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 afișează o singură linie cu multiple coloane | |
separate prin tabulatoare: | |
.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: <https://tukaani.org/xz/> | |
.br | |
XZ Embedded: <https://tukaani.org/xz/embedded.html> | |
.br | |
LZMA SDK: <https://7\-zip.org/sdk.html> | |