Provided by: xz-utils_5.8.1-1build1_amd64 bug

NOME

       xz, unxz, xzcat, lzma, unlzma, lzcat - Comprime o decomprime file .xz e .lzma

SINOSSI

       xz [OPZIONE...] [FILE...]

ALIAS DEI COMANDI

       unxz è equivalente a xz --decompress.
       xzcat è equivalente a xz --decompress --stdout.
       lzma è equivalente a xz --format=lzma.
       unlzma è equivalente a xz --format=lzma --decompress.
       lzcat è equivalente a xz --format=lzma --decompress --stdout.

       Quando  si  scrivono  script  che  richiedono di decomprimere file, si raccomanda di utilizzare sempre il
       comando xz con argomenti appropriati (xz -d o xz -dc) al posto degli alias unxz e xzcat.

DESCRIZIONE

       xz è uno strumento di compressione dati generico con sintassi della riga di comando simile a  gzip(1)   e
       bzip2(1).  Il  formato  file  nativo  è .xz, ma sono supportati anche il formato tradizionale .lzma usato
       dalle LZMA Utils e i flussi grezzi (raw) compressi senza intestazioni di formato contenitore. In  più,  è
       supportata la decompressione del formato .lzusato da lzip.

       xz  comprime o decomprime ogni FILE a seconda della modalità di funzionamento selezionata. Se nessun FILE
       è indicato o se FILE è -, xz legge dallo standard input e scrive i dati processati sullo standard output.
       xz si rifiuterà (stamperà un errore e salterà il FILE) di scrivere dati compressi sullo  standard  output
       se  è  il terminale. Analogamente, xz si rifiuterà di leggere dati compressi dallo standard input se è il
       terminale.

       A meno che non sia specificato --stdout, i FILE diversi da - vengono scritti in un nuovo file il cui nome
       deriva dal nome del FILE sorgente:

       •  Quando si comprime, il suffisso del file destinazione (.xz or .lzma) viene accodato al nome  del  file
          sorgente per ottenere il nome del file destinazione.

       •  Quando  si  decomprime, i suffissi .xz, .lzma, o .lz vengono rimossi dal nome del file per ottenere il
          nome del file destinazione. xz riconosce anche i suffissi  .txz  e  .tlz,  e  li  sostituisce  con  il
          suffisso .tar.

       Se il file di destinazione esiste già, viene visualizzato un errore e FILE viene saltato.

       A  meno  che non si scriva nello standard output, xz visualizzerà un avvertimento e salterà il FILE se si
       verifica una delle seguenti condizioni:

       •  FILE non è un file regolare. I collegamenti simbolici non vengono seguiti, quindi non sono considerati
          file regolari.

       •  FILE ha più di un collegamento "hard".

       •  FILE ha impostati i bit setuid, setgid, o sticky.

       •  La modalità di funzionamento è impostata sulla compressione e il FILE ha già un suffisso  del  formato
          di  file  di  destinazione  (.xz  o  .txz  quando si comprime nel formato .xz e .lzma o .tlz quando si
          comprime nel formato .lzma).

       •  La modalità di funzionamento è impostata sulla decompressione e il FILE non ha un suffisso di  nessuno
          dei formati di file supportati (.xz, .txz, .lzma, .tlz, o .lz).

       Dopo  aver  compresso  o  decompresso  correttamente  il  FILE,  xz  copia il proprietario, il gruppo, le
       autorizzazioni, l'ora di accesso e l'ora di modifica dal FILE di origine al file di destinazione.  Se  la
       copia  del  gruppo fallisce, le autorizzazioni vengono modificate in modo che il file di destinazione non
       diventi accessibile agli utenti che non disponevano dell'autorizzazione per accedere al FILE di  origine.
       xz  non  supporta  ancora  la  copia  di  altri metadati, ad esempio elenchi di controllo degli accessi o
       attributi estesi.

       Una volta che il file di destinazione è stato chiuso con successo, il FILE sorgente viene rimosso, a meno
       che sia stato specificato --keep. Il FILE sorgente non viene mai rimosso  se  l'output  è  scritto  sullo
       standard output, né se si verifica un errore.

       L'invio  di  SIGINFO  o  SIGUSR1  al  processo  xz  comporta  la stampa delle informazioni sullo stato di
       avanzamento sullo standard error. Questo ha solo un uso limitato poiché quando lo  standard  error  è  un
       terminale,  utilizzando  --verbose  verrà  visualizzato  un  indicatore  di  avanzamento  che si aggiorna
       automaticamente.

   Utilizzo memoria
       L'utilizzo della memoria di xz varia da poche centinaia di kilobyte a diversi gigabyte  a  seconda  delle
       impostazioni di compressione. Le impostazioni utilizzate durante la compressione di un file determinano i
       requisiti di memoria del decompressore. In genere il decompressore richiede dal 5 al 20 della quantità di
       memoria necessaria al compressore durante la creazione del file. Ad esempio, la decompressione di un file
       creato con xz -9 al momento richiede 65 MiB di memoria. Ancora, è possibile avere file .xz che richiedono
       diversi gigabyte di memoria per la decompressione.

       Soprattutto  gli  utenti  di  sistemi  più vecchi possono trovare fastidiosa l'eventualità di un utilizzo
       molto elevato di memoria. Per evitare spiacevoli sorprese, xz dispone di un limitatore di utilizzo  della
       memoria  incorporato,  che è disabilitato per impostazione predefinita. Anche se alcuni sistemi operativi
       forniscono modi per limitare l'utilizzo della memoria dei processi, fare  affidamento  su  questi  non  è
       stato  ritenuto  sufficientemente  flessibile  (ad  esempio,  l'uso  di ulimit(1) per limitare la memoria
       virtuale tende a paralizzare mmap(2)).

       Il limitatore di utilizzo della memoria  può  essere  abilitato  con  l'opzione  della  riga  di  comando
       --memlimit=LIMITE.  Spesso  è  più  conveniente  abilitare  il  limitatore  per  impostazione predefinita
       impostando la variabile d'ambiente XZ_DEFAULTS, ad esempio,  XZ_DEFAULTS=--memlimit=150MiB.  È  possibile
       impostare    separatamente   i   limiti   per   la   compressione   e   la   decompressione   utilizzando
       --memlimit-compress=LIMITE and --memlimit-decompress=LIMITE. L'uso di queste due opzioni al di  fuori  di
       XZ_DEFAULTS  è  raramente  utile perché una singola esecuzione di xz non può eseguire sia la compressione
       che la decompressione e --memlimit=LIMITE (or -M LIMITE) è più breve da digitare sulla riga di comando.

       Se il limite di  utilizzo  della  memoria  specificato  viene  superato  durante  la  decompressione,  xz
       visualizzerà  un  errore  e  la  decompressione  del file fallirà. Se il limite viene superato durante la
       compressione, xz tenterà di ridimensionare le impostazioni in modo che il limite non venga  più  superato
       (tranne  quando si usa --format=raw o --no-adjust). In questo modo l'operazione non fallirà a meno che il
       limite sia molto basso. Il ridimensionamento delle impostazioni viene eseguito in piccole differenze  che
       non  corrispondono  ai  livelli di compressione preimpostati, ad esempio, se il limite è solo leggermente
       inferiore alla quantità richiesta per xz -9, le impostazioni saranno ridimensionate  solo  un  poco,  non
       proprio fino a xz -8.

   Concatenazione e padding con file .xz
       È  possibile  concatenare i file .xz così come sono. xz decomprimerà tali file come se fossero un singolo
       file .xz.

       È possibile inserire un padding tra le parti concatenate o dopo l'ultima parte. Il  padding  deve  essere
       costituito da byte "null" e la dimensione del padding deve essere un multiplo di quattro byte. Questo può
       essere  utile,  ad esempio, se il file .xz è memorizzato su un supporto che misura le dimensioni dei file
       in blocchi di 512 byte.

       Concatenazione e padding non sono permessi con file .lzma o con flussi grezzi.

OPZIONI

   Suffissi interi e valori speciali
       Nella maggior parte dei casi in cui è previsto un argomento intero, è supportato un suffisso  facoltativo
       per  indicare facilmente numeri interi di grandi dimensioni. Non deve esserci alcuno spazio tra il numero
       intero e il suffisso.

       KiB    Moltiplica l'intero per 1024 (2^10). Ki, k, kB, K, e KB sono accettati come sinonimi di KiB.

       MiB    Moltiplica l'intero per 1.048.576 (2^20). Mi, m, M, e MB sono accettati come sinonimi di MiB.

       GiB    Moltiplica l'intero per 1.073.741.824 (2^30). Gi, g, G, e GB sono accettati come sinonimi di GiB.

       Il valore  speciale  max  può  essere  utilizzato  per  indicare  il  valore  intero  massimo  supportato
       dall'opzione.

   Modalità operativa
       Se vengono fornite più opzioni di modalità operativa, l'ultima ha effetto.

       -z, --compress
              Compressione.  Questa  è  la  modalità  operativa  predefinita quando non viene specificata alcuna
              opzione della modalità operativa e non è determinata nessun'altra modalità operativa dal nome  del
              comando (ad esempio, unxz implica --decompress).

              Dopo  che  la  compressione  è terminata con successo, il file origine viene rimosso a meno che si
              stia scrivendo su standard output o che venga specificato --keep.

       -d, --decompress, --uncompress
              Decompressione. Dopo che la decompressione è terminata con successo, il file origine viene rimosso
              a meno che si stia scrivendo su standard output o che venga specificato --keep.

       -t, --test
              Testa l'integrità dei FILE compressi. Questa opzione è equivalente a --decompress --stdout  tranne
              per  il  fatto  che  i  dati  decompressi vengono scartati invece di essere scritti nello standard
              output. Nessun file viene creato o rimosso.

       -l, --list
              Stampa le informazioni sul FILE compresso. Non viene prodotto alcun output  non  compresso  e  non
              viene  creato  o  rimosso alcun file. In modalità elenco, il programma non è in grado di leggere i
              dati compressi dallo standard input o da altre fonti che non permettano la ricerca.

              Il tracciato predefinito mostra le informazioni di base sui FILE, un file per riga.  Per  ottenere
              informazioni  più dettagliate, usare anche l'opzione --verbose. Per avere ancora più informazioni,
              usare --verbose due volte, ma si noti che questo  può  essere  lento,  perché  ottenere  tutte  le
              informazioni  extra  richiede molte estrazioni. La larghezza dell'output dettagliato supera gli 80
              caratteri, quindi il reindirizzamento dell'output, ad esempio, a less -S può essere  utile  se  il
              terminale non è sufficientemente ampio.

              L'output  esatto può variare tra le versioni di xz e le diverse impostazioni locali. Per un output
              leggibile dalla macchina si dovrebbe utilizzare --robot --list.

   Modificatori dell'operazione
       -k, --keep
              Non elimina i file input.

              A partire da xz 5.2.6, questa opzione fa sì che xz comprima o decomprima anche  se  l'input  è  un
              collegamento  simbolico  a  un file regolare, ha più di un collegamento fisico o ha il bit setuid,
              setgid o sticky impostato. I bit  setuid,  setgid  e  sticky  non  vengono  copiati  nel  file  di
              destinazione. Nelle versioni precedenti questo veniva fatto solo con --force.

       -f, --force
              Questa opzione ha diverse conseguenze:

              •  Se il file di destinazione esiste già, lo elimina prima di comprimere o decomprimere.

              •  Comprime  o  decomprime anche se l'input è un collegamento simbolico a un file regolare, ha più
                 di un collegamento "hard", o ha il bit setuid, setgid o sticky impostato. I bit setuid,  setgid
                 e sticky non sono copiati sul file destinazione.

              •  Quando  usato con --decompress --stdout e xz non riesce a riconoscere il tipo di file sorgente,
                 copia il file sorgente così com'è sullo standard output. Questo permette  a  xzcat  --force  di
                 essere  usato  come cat(1) per file che non siano stati compressi con xz. Si noti che in futuro
                 xz potrebbe supportare  nuovi  formati  di  file  compressi,  il  che  potrebbe  portare  xz  a
                 decomprimere   più   tipi   di   file   anziché  copiarli  come  sono  sullo  standard  output.
                 --format=FORMATO può essere usato per forzare xz a decomprimere  solo  un  singolo  formato  di
                 file.

       -c, --stdout, --to-stdout
              Scrive i dati compressi o decompressi nello standard output anziché in un file. Implica --keep.

       --single-stream
              Decomprime  solo il primo flusso .xz, e ignora automaticamente i possibili dati di input rimanenti
              che seguono il flusso. Normalmente questi dati sporchi finali portano xz a visualizzare un errore.

              xz non decomprime mai più di un flusso dai file .lzma o dai flussi grezzi, ma  questa  opzione  fa
              comunque in modo che xz ignori i possibili dati finali dopo il file .lzma o il flusso grezzo.

              Questa opzione non ha effetto se la modalità operativa non è --decompress o --test.

              Dalla versione xz 5.7.1alpha, --single-stream implica --keep.

       --no-sparse
              Disabilita   la  creazione  di  file  sparsi.  Per  impostazione  predefinita,  se  si  esegue  la
              decompressione in un file regolare, xz tenta di rendere il  file  sparso  se  i  dati  decompressi
              contengono  lunghe  sequenze  di  zeri binari. Funziona anche quando si scrive su standard output,
              purché lo standard output sia collegato a un file regolare e siano soddisfatte  alcune  condizioni
              aggiuntive  per  renderlo  sicuro.  La  creazione di file sparsi può risparmiare spazio su disco e
              velocizzare la decompressione riducendo la quantità di I/O su disco.

       -S .SUFFISSO, --suffix=.SUFFISSO
              Durante la compressione, utilizzare .suf come suffisso per il file di destinazione anziché  .xz  o
              .lzma.  Se non si scrive nello standard output e il file di origine ha già il suffisso .suf, viene
              visualizzato un avvertimento e il file viene ignorato.

              Quando si decomprime, accetta i file con suffisso .suf in aggiunta  a  quelli  con  suffisso  .xz,
              .txz,  .lzma,  .tlz,  o  .lz.  Se il file sorgente ha suffisso .suf, il suffisso viene rimosso per
              ottenere il nome del file destinazione.

              Quando si comprimono o decomprimono flussi grezzi (--format=raw), il suffisso deve  sempre  essere
              specificato, a meno che si scriva sullo standard output, perché non esiste un suffisso predefinito
              per i flussi grezzi.

       --files[=FILE]
              Legge i nomi dei file da processare da FILE; se FILE è omesso, i nomi dei file vengono letti dallo
              standard  input. I nomi dei file devono essere terminati da un carattere "a capo". Un trattino (-)
              è considerato come un nome di file regolare; non indica lo  standard  input.  Se  vengono  forniti
              anche  dei  nomi  di  file  come  argomenti della riga di comando, questi sono processati prima di
              quelli letti da FILE.

       --files0[=FILE]
              Questo è identico a --files[=FILE] tranne per il fatto che ogni nome di file deve terminare con il
              carattere null.

   Formato file di base e opzioni di compressione
       -F FORMATO, --format=FORMATO
              Specifica il FORMATO del file da comprimere o decomprimere:

              auto   Questa è l'impostazione predefinita. Quando si comprime, auto è equivalente a xz. Quando si
                     decomprime, il formato del file input viene rilevato automaticamente. Si  noti  che  per  i
                     flussi grezzi (creati con --format=raw) non è possibile il rilevamento automatico.

              xz     Comprime nel formato di file .xz, oppure accetta solo file .xz durante la decompressione.

              lzma, alone
                     Comprime   nel   formato  tradizionale  .lzma,  oppure  accetta  solo  file  .lzma  per  la
                     decompressione. Il nome alternativo alone è fornito  per  retrocompatibilità  con  le  LZMA
                     Utils.

              lzip   Accetta solo file .lz per la decompressione. La compressione non è supportata.

                     Sono supportati il formato .lz versione 0 e la versione 1 non estesa. I file della versione
                     0  sono  stati  prodotti  da  lzip  1.3 e precedenti. Tali file non sono comuni, ma possono
                     essere trovati negli archivi di file poiché alcuni pacchetti sorgente sono stati rilasciati
                     in questo formato. Anche alcune persone potrebbero avere vecchi file  personali  in  questo
                     formato.  Il supporto alla decompressione per il formato versione 0 è stato rimosso in lzip
                     1.18.

                     lzip  1.4  e  successivi  creano  file  nel  formato  v1.  L'estensione  del  marcatore  di
                     scaricamento sincronizzazione al formato v1 è stata aggiunta in lzip 1.6. Questa estensione
                     è utilizzata raramente e non è supportata da xz(viene segnalata come input corrotto).

              raw    Comprime  o decomprime un flusso grezzo (senza intestazione). Questo è inteso solamente per
                     utenti avanzati. Per decodificare flussi grezzi, occorre usare --format=raw  e  specificare
                     esplicitamente    la    catena   dei   filtri,   che   normalmente   sarebbero   conservati
                     nell'intestazione.

       -C CONTROLLO, --check=CONTROLLO
              Specifica il tipo di controllo di integrità. Il controllo viene calcolato dai dati non compressi e
              memorizzato nel file .xz. Questa opzione ha effetto solo quando si comprime nel  formato  .xz;  il
              formato .lzma non supporta i controlli di integrità. Il controllo di integrità (se presente) viene
              verificato quando il file .xz viene decompresso.

              Tipi di CONTROLLI supportati:

              none   Non  calcola  proprio  il  controllo di integrità. Questo in genere è una pessima idea. Può
                     essere utile quando l'integrità dei dati viene comunque verificata con altri mezzi.

              crc32  Calcola la firma CRC32 usando il polinomio di IEEE-802.3 (Ethernet).

              crc64  Calcola  la  firma  CRC64  usando  il  polinomio  di  ECMA-182.  Questa  è   l'impostazione
                     predefinita, perché è leggermente migliore della CRC32 nel rilevare i file danneggiati e la
                     differenza di velocità è trascurabile.

              sha256 Calcola la firma SHA-256. Questo è un po' più lento che CRC32 e CRC64.

              L'integrità  delle intestazioni .xz viene sempre verificata con CRC32. Non è possibile modificarlo
              o disabilitarlo.

       --ignore-check
              Non verifica il controllo di integrità dei dati compressi durante  la  decompressione.  Il  valore
              CRC3 nelle intestazioni .xz sarà ancora verificata normalmente.

              Non  usare  questa  opzione  se  non  si  è  consci  di cosa si sta facendo. Possibili ragioni per
              utilizzare questa opzione:

              •  Tentativo di recupero dei dati da un file .xz corrotto.

              •  Accelerazione della decompressione. Questo è importante soprattutto con SHA-256 o  con  i  file
                 che  sono  stati compressi molto bene. Si consiglia di non utilizzare questa opzione per questo
                 scopo, a meno che l'integrità del file non venga verificata esternamente in altro modo.

       -0 ... -9
              Selezionare un livello di compressione preimpostato.  Il  valore  predefinito  è  -6.  Se  vengono
              specificati  più  livelli preimpostati, l'ultimo ha effetto. Se è già stata specificata una catena
              di filtri personalizzata, l'impostazione di un livelli preimpostati cancella la catena  di  filtri
              personalizzata.

              Le differenze tra i livelli preimpostati sono più significative rispetto a gzip(1)  e bzip2(1). Le
              impostazioni  di  compressione  selezionate  determinano i requisiti di memoria del decompressore,
              quindi  l'utilizzo  di  un  livello  preimpostato  troppo  alto  potrebbe  rendere  difficile   la
              decompressione  del  file su un vecchio sistema con poca RAM. Specificamente, non è una buona idea
              utilizzare ciecamente -9 per tutto come spesso accade per gzip(1)  e bzip2(1).

              -0 ... -3
                     Questi sono livelli preimpostati piuttosto veloci. -0- a volte è più veloce di  gzip  -9  e
                     comprime  molto  meglio.  Quelli più alti hanno spesso una velocità paragonabile a bzip2(1)
                     con un rapporto di compressione comparabile o migliore,  anche  se  i  risultati  dipendono
                     molto dal tipo di dati che vengono compressi.

              -4 ... -6
                     Compressione  da buona a molto buona, mantenendo l'utilizzo della memoria del decompressore
                     ragionevole anche per vecchi sistemi. -6 è il valore predefinito, che di solito è una buona
                     scelta per distribuire file che debbano essere decompressi anche su sistemi con solo 16 MiB
                     di RAM. (Potrebbe valere la pena di considerare anche -5e o -6e. Si veda --extreme.)

              -7 ... -9
                     Questi sono come -6 ma con requisiti di memoria di compressore e decompressore più elevati.
                     Sono utili solo quando si comprimono file di dimensioni superiori a 8 MiB, 16 MiB e 32 MiB,
                     rispettivamente.

              A parità di hardware, la velocità di decompressione è approssimativamente un  numero  costante  di
              byte di dati compressi al secondo. In altre parole, migliore è la compressione, più veloce sarà di
              solito  la decompressione. Ciò significa anche che la quantità di output non compresso prodotta al
              secondo può variare notevolmente.

              La tabella seguente riassume le caratteristiche dei livelli preimpostati:

                     Livello preimpostato   DictSize   CompCPU   CompMem   DecMem
                              -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

              Descrizioni delle colonne:

              •  DictSize è la dimensione del dizionario LZMA2. È uno spreco di memoria usare un dizionario  più
                 grande della dimensione del file non compresso. Ecco perché è una buona cosa evitare di usare i
                 livelli  preimpostati -7 ... -9 quando non c'è reale necessità. Con -6 e inferiori, la quantità
                 di memoria sprecata in genere è sufficientemente bassa da essere trascurabile.

              •  CompCPU è una rappresentazione semplificata delle impostazioni  di  LZMA2  che  influenzano  la
                 velocità  di  compressione.  Anche  la  dimensione del dizionario influenza la velocità, quindi
                 mentre CompCPU è lo stesso per i livelli -6 ... -9, i livelli più alti tendono ancora ad essere
                 un po' più lenti. Per avere una compressione ancora più lenta e quindi potenzialmente migliore,
                 utilizzare --extreme.

              •  CompMem contiene i requisiti di memoria del compressore  in  modalità  a  singola  thread.  Può
                 variare leggermente tra le versioni di xz.

              •  DecMem  contiene  i requisiti di memoria del decompressore. In altre parole, le impostazioni di
                 compressione determinano i requisiti di memoria  del  decompressore.  L'utilizzo  esatto  della
                 memoria  del  decompressore  è leggermente superiore alla dimensione del dizionario LZMA2, ma i
                 valori nella tabella sono stati arrotondati per eccesso al successivo MiB completo.

              I requisiti di memoria per la modalità a thread multiple sono significativamente più alti che  per
              la  modalità  thread  singola.  Con  il  valore  predefinito di --block-size, ogni thread richiede
              3*3*dimensione del dizionario più CompMem oppure DecMem. Ad  esempio,  4  thread  con  il  livello
              preimpostato -6 hanno bisogno di 660–670 MiB di memoria.

       -e, --extreme
              Utilizzare  una variante più lenta del livello preimpostato selezionato (-0 ... -9) nella speranza
              di ottenere un rapporto di compressione leggermente migliore, ma con un  po'  di  sfortuna  questo
              potrebbe anche renderlo peggiore. L'utilizzo della memoria del decompressore non è influenzato, ma
              l'utilizzo della memoria del compressore aumenta leggermente ai livelli preimpostati -0 ... -3.

              Dal momento che ci sono due livelli preimpostati con dimensione del dizionario di 4 MiB e 8 MiB, i
              livelli preimpostati -3e e -5e usano impostazioni leggermente più veloci (minore CompCPU) di -4e e
              -6e, rispettivamente. In questo modo non ci sono due livelli preimpostati identici.

                     Livello preimpostato   DictSize   CompCPU   CompMem   DecMem
                             -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

              Ad  esempio,  ci  sono  un  totale di quattro livelli preimpostati che utilizzano un dizionario da
              8 MiB, il cui ordine dal più veloce al più lento è -5, -6, -5e, e -6e.

       --fast
       --best Questi sono alias in qualche modo fuorvianti per -0 e -9, rispettivamente. Sono forniti  solo  per
              retrocompatibilità con le LZMA Utils. Evitare di utilizzare queste opzioni.

       --block-size=DIMENSIONE
              Quando  si  comprime  in formato .xz, divide i dati input in blocchi da DIMENSIONE byte. I blocchi
              vengo compressi indipendentemente l'uno dall'altro, cosa che aiuta con le thread multiple e  rende
              possibile  la  decompressione con accessi casuali limitati. Questa opzione viene usata tipicamente
              per sovrascrivere la dimensione predefinita dei blocchi in modalità  a  thread  multiple,  ma  può
              essere utilizzata anche in modalità thread singola.

              In  modalità  a  thread  multiple  verranno allocati circa il triplo di DIMENSIONE di byte in ogni
              thread per il buffering dell'input e  dell'output.  La  DIMENSIONE  predefinita  è  tre  volte  la
              dimensione del dizionario LZMA2 e comunque almeno 1 MiB. Tipicamente un buon valore è 2–4 volte la
              dimensione  del  dizionario  LZMA2  oppure  almeno  1  MiB.  Usare  una DIMENSIONE inferiore della
              dimensione del dizionario LZMA2 causa uno spreco di RAM, in quanto il buffer del dizionario  LZMA2
              non  verrà  mai riempito completamente. In modalità a thread multiple, la dimensione dei blocchi è
              conservata nelle intestazioni dei blocchi. L'informazione sulla  dimensione  è  richiesta  per  la
              decompressione a thread multiple.

              Nella  modalità  a  thread  singola,  per  impostazione  predefinita  non  viene  eseguita  alcuna
              suddivisione in blocchi. L'impostazione  di  questa  opzione  non  influisce  sull'utilizzo  della
              memoria.  Nessuna  informazione  sulle  dimensioni viene memorizzata nelle intestazioni di blocco,
              quindi i file creati in modalità a thread singola non saranno identici ai file creati in  modalità
              a thread multiple. La mancanza di informazioni sulle dimensioni significa anche che xz non sarà in
              grado di decomprimere i file in modalità a thread multiple.

       --block-list=ELEMENTI
              Quando si comprime nel formato .xz, inizia un nuovo blocco con una catena di filtri personalizzata
              dopo gli intervalli indicati di dati non compressi.

              Gli ELEMENTI sono un elenco separato da virgole. Ogni elemento è costituito da un numero di catena
              di  filtri  opzionale compreso tra 0 e 9 seguito da due punti (:) e da una dimensione richiesta di
              dati non compressi. L'omissione di un elemento (due o più virgole consecutive) è  una  scorciatoia
              per utilizzare le dimensioni e i filtri dell'elemento precedente.

              Se il file di input è più grande della somma delle dimensioni in ELEMENTI, l'ultimo elemento viene
              ripetuto  fino  alla  fine  del  file.  Il  valore  speciale  0  può essere utilizzato come ultima
              dimensione per indicare che il resto del file deve essere codificato come un singolo blocco.

              È possibile specificare una catena di filtri alternativa per ogni blocco in  combinazione  con  le
              opzioni  --filters1=FILTRI  ... --filters9=FILTRI. Queste opzioni definiscono catene di filtri con
              un identificatore compreso tra 1–9. La catena di filtri 0 può essere utilizzata  per  indicare  la
              catena   di   filtri   predefinita,   che  equivale  a  non  specificare  una  catena  di  filtri.
              L'identificatore della  catena  di  filtri  può  essere  utilizzato  prima  della  dimensione  non
              compressa,     seguita     da     due     punti    (:).    Ad    esempio,    se    si    specifica
              --block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB allora i blocchi verranno creati utilizzando:

              •  La catena dei filtri specificata da --filters1 e un input di 2 MiB

              •  La catena dei filtri specificata da --filters3 e un input di 2 MiB

              •  La catena dei filtri specificata da --filters2 e un input di 4 MiB

              •  La catena dei filtri specificata da --filters2 e un input di 4 MiB

              •  La catena di filtri predefinita e l'input di 2 MiB

              •  La catena di filtri predefinita e l'input di 4 MiB per ogni blocco fino alla fine dell'input.

              Se si specifica una dimensione che supera la dimensione del blocco  del  codificatore  (il  valore
              predefinito  in  modalità  thread  oppure  il  valore specificato con --block-size=DIMENSIONE), il
              codificatore creerà blocchi aggiuntivi mantenendo i limiti specificati in ELEMENTI. Ad esempio, se
              si indica --block-size=10MiB --block-list=5MiB,10MiB,8MiB,12MiB,24MiB e il file input è di 80 MiB,
              si otterranno 11 blocchi: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, and 1 MiB.

              In modalità a thread multiple, le dimensioni dei blocchi vengono  memorizzate  nelle  intestazioni
              dei  blocchi.  Questo  non avviene in modalità thread singola, quindi l'output codificato non sarà
              identico a quello della modalità a thread multiple.

       --flush-timeout=TIMEOUT
              Quando si comprime, se sono passati  più  di  TIMEOUT  millisecondi  (un  intero  positivo)  dallo
              scaricamento  precedente e la lettura di ulteriori input si bloccherebbe, tutti i dati di input in
              sospeso vengono scaricati dal codificatore e resi disponibili nel flusso  di  output.  Questo  può
              essere  utile  se  xz  viene usato per comprimere dati in streaming dalla rete. Piccoli valori del
              TIMEOUT rendono disponibili i dati al ricevente con un ritardo minimo, mentre  valori  di  TIMEOUT
              grandi danno un miglior rapporto di compressione.

              Questa  funzionalità  è  disabilitata  per  impostazione  predefinita.  Se  questa  opzione  viene
              specificata più di una volta, l'ultima ha effetto. Il valore speciale  TIMEOUT  di  0  può  essere
              utilizzato per disabilitare esplicitamente questa funzionalità.

              Questa funzionalità non è disponibile sui sistemi non-POSIX.

              Questa  funzionalità  è  sperimentale.  Attualmente  xz non è adatto per decomprimere il flusso in
              tempo reale, a causa di come effettua il buffering.

       --no-sync
              Non sincronizzare il file target e la sua directory sull'unità di archiviazione prima di rimuovere
              il file sorgente. Questo può migliorare le performance se si sta comprimendo o decomprimendo tanti
              piccoli file. Tuttavia, se il sistema dovesse  andare  in  crash  subito  dopo  l'eliminazione,  è
              possibile che il file destinazione non sia ancora stato scritto sull'unità di archiviazione mentre
              l'operazione  di  eliminazione  sì. In questo caso non saranno più disponibili né il file sorgente
              originale né il file di destinazione.

              Questa opzione ha effetto solamente quando xz deve rimuovere il file sorgente. Negli altri casi la
              sincronizzazione non viene eseguita.

              La sincronizzazione e --no-sync sono stati aggiunti nella versione xz 5.7.1alpha.

       --memlimit-compress=LIMITE
              Imposta un limite di  utilizzo  della  memoria  per  la  compressione.  Se  questa  opzione  viene
              specificata più volte, ha effetto l'ultima.

              Se  le  impostazioni  di  compressione  superano  il  valore  LIMITE,  xz  tenterà  di regolare le
              impostazioni verso il basso in modo che il limite non venga più superato e visualizzerà un  avviso
              che  indica  che  è  stata eseguita una regolazione automatica. Le regolazioni vengono eseguite in
              questo ordine: riduzione del numero di thread, passaggio alla modalità a thread singola  se  anche
              un  solo  thread  in modalità a thread multiple supera il LIMITE, e infine riducendo la dimensione
              del dizionario LZMA2.

              Quando si comprime con --format=raw oppure se si è specificato --no-adjust,  è  possibile  ridurre
              solo il numero di thread, poiché questo può essere fatto senza influire sull'output compresso.

              Se  non  è  possibile  soddisfare  il  LIMITE  anche  con  le  regolazioni  sopra descritte, viene
              visualizzato un errore e xz uscirà con lo stato di uscita 1.

              Il LIMITE può essere specificato in diversi modi:

              •  Il LIMITE può essere un valore assoluto in byte. Usare un suffisso intero come MiB  può  essere
                 utile. Ad esempio: --memlimit-compress=80MiB

              •  Il LIMITE può essere specificato come percentuale della memoria fisica (RAM) totale. Questo può
                 essere  utile specialmente quando si imposta la variabile di ambiente XZ_DEFAULTS in uno script
                 di inizializzazione di shell che è condiviso tra computer diversi. In questo modo il  limite  è
                 automaticamente più grande sui sistemi con più memoria. Ad esempio: --memlimit-compress=70%

              •  Il  LIMITE può essere reimpostato al suo valore predefinito impostandolo a 0.Questo attualmente
                 equivale a impostare il LIMITE a max (nessun limite nell'utilizzo di memoria).

              Per xz a 32-bit esiste un caso particolare: se il LIMITE fosse oltre  4020 MiB,  il  LIMITE  viene
              impostato  a  4020 MiB.  Su  MIPS32  invece  viene  usato  2000 MiB.  (I  valori  0 e max non sono
              influenzati da questo. Un comportamento simile non  esiste  per  la  decompressione).  Questo  può
              essere utile quando un eseguibile a 32 bit ha accesso a uno spazio di indirizzi da 4 GiB (2 GiB su
              MIPS32), e si spera che non faccia danni in altre situazioni.

              Vedere anche la sezione Utilizzo memoria

       --memlimit-decompress=LIMITE
              Imposta  un  limite  di utilizzo della memoria per la decompressione. Questo influisce anche sulla
              modalità --list. Se l'operazione non è possibile senza oltrepassare  il  LIMITE,  xz  mostrerà  un
              errore e la decompressione del file fallirà. Si veda --memlimit-compress=LIMITE per possibili modi
              per specificare il LIMITE.

       --memlimit-mt-decompress=LIMITE
              Imposta  un  limite  di  utilizzo  della  memoria  per  la decompressione multi-thread. Questo può
              influire solo sul numero di thread; non indurrà mai xz a rifiutarsi di decomprimere  un  file.  Se
              LIMITE  è troppo basso per consentire le thread multiple, il LIMITE viene ignorato e xz continuerà
              in modalità a thread singola. Si noti che se  viene  utilizzato  anche  --memlimit-decompress,  si
              applicherà  sempre  sia alla modalità a thread singola che a quella a thread multiple, e quindi il
              LIMITE  effettivo  per  le  thread  multiple  non  sarà  mai  superiore  a  quello  impostato  con
              --memlimit-decompress.

              In    contrasto    con    le    altre    opzioni    di   limite   di   utilizzo   della   memoria,
              --memlimit-mt-decompress=LIMITE  ha  un  LIMITE  predefinito  specifico   per   il   sistema.   xz
              --info-memory può essere utilizzato per vedere il valore corrente.

              Questa  opzione  e  il suo valore predefinito esistono perché, senza un limite, il decompressore a
              thread multiple potrebbe finire per allocare una quantità folle di memoria per alcuni file  input.
              Se  il  valore  predefinito  LIMITE  è  troppo  basso  sul proprio sistema, è possibile aumentarlo
              liberamente, ma non deve essere mai impostato a  un  valore  più  grande  della  quantità  di  RAM
              utilizzabile, in quanto con file di input appropriati xz cercherà di utilizzare quella quantità di
              memoria  anche  con  un  basso numero di thread. Esaurire la memoria o fare swap non migliorerà le
              performance della decompressione.

              Vedi --memlimit-compress=LIMITE per possibili modi per specificare il LIMITE. Impostando LIMITE su
              0 si ripristina il valore predefinito LIMITE specifico del sistema.

       -M LIMITE, --memlimit=LIMITE, --memory=LIMITE
              Questo   equivale   a    specificare    --memlimit-compress=LIMITE    --memlimit-decompress=LIMITE
              --memlimit-mt-decompress=LIMITE.

       --no-adjust
              Visualizza  un  errore  e  esce  se non è possibile soddisfare il limite di utilizzo della memoria
              senza regolare le impostazioni  che  influiscono  sull'output  compresso.  In  altre  parole,  ciò
              impedisce  a  xz  di  passare  il  codificatore dalla modalità multi-thread alla modalità a thread
              singola e di ridurre le dimensioni del dizionario LZMA2. Anche quando viene usata questa  opzione,
              il  numero  di  thread  può  essere ridotto per soddisfare il limite di utilizzo della memoria, in
              quanto ciò non influirà sull'output compresso.

              La regolazione automatica è sempre disabilitata quando si creano flussi raw (--format=raw).

       -T THREADS, --threads=THREADS
              Specifica il numero di thread di  lavoro  da  utilizzare.  L'impostazione  di  THREADS  al  valore
              speciale  0  fa  sì  che  xz  utilizzi  fino a un numero di thread che il processore/i del sistema
              supportano. Il numero effettivo di thread può essere inferiore a THREADS se il file di input non è
              sufficientemente grande per il threading con le impostazioni specificate o se  l'utilizzo  di  più
              thread supera il limite di utilizzo della memoria.

              I  compressori  a  thread  singola  e a thread multiple producono output diversi. Il compressore a
              thread singola produrrà la dimensione del file più piccola, ma solo  l'output  del  compressore  a
              thread  multiple  può  essere  decompresso  utilizzando  più thread. Impostando THREADS su 1 verrà
              utilizzata la modalità a thread singola. L'impostazione di  THREADS  su  qualsiasi  altro  valore,
              incluso 0, utilizzerà il compressore a thread multiple anche se il sistema supporta un solo thread
              hardware. (xz 5.2.x utilizzava la modalità a thread singola in questa situazione.)

              Per  utilizzare  la  modalità  a  thread  multiple con un solo thread, impostare THREADS su +1. Il
              prefisso + non ha alcun effetto con valori diversi da 1. Un limite di utilizzo della  memoria  può
              comunque  far  passare  xz  alla  modalità  a  thread  singola  a  meno  che  non venga utilizzato
              --no-adjust. Il supporto per il prefisso + è stato aggiunto in xz 5.4.0.

              Se è stato richiesto un numero automatico di thread e non è  stato  specificato  alcun  limite  di
              utilizzo  della memoria, verrà utilizzato un limite "soft" predefinito, specifico del sistema, per
              limitare eventualmente il numero di thread. È un limite "soft" nel senso che viene ignorato se  il
              numero  di  thread  diventa  uno,  quindi  un  limite  soft  non impedirà mai a xz di comprimere o
              decomprimere. Questo limite soft predefinito non farà passare xz dalla modalità a thread  multiple
              alla modalità thread singola. I limiti attivi possono essere visualizzati con xz --info-memory.

              Attualmente  l'unico  metodo  di  threading consiste nel dividere l'input in blocchi e comprimerli
              indipendentemente l'uno dall'altro. La dimensione predefinita del blocco dipende  dal  livello  di
              compressione e può essere sovrascritta con l'opzione --block-size=DIMENSIONE.

              La  decompressione  a  thread  multiple  funziona  solo  su  file  che  contengano più blocchi con
              l'informazione della dimensione nelle intestazioni  del  blocco.  Tutti  i  file  sufficientemente
              grandi  compressi  in  modalità  a  thread  multiple  soddisfano  questa condizione, mentre i file
              compressi in modalità thread singola no, neanche se si è utilizzato --block-size= DIMENSIONE.

              Il valore predefinito per THREADS è 0. In xz 5.4.x e precedenti il valore predefinito era 1.

   Catene di filtri di compressione personalizzate
       Una catena di filtri personalizzata consente di specificare in dettaglio le impostazioni di  compressione
       invece di fare affidamento sulle impostazioni associate ai livelli preimpostati. Quando viene specificata
       una  catena di filtri personalizzata, le opzioni relative ai livelli preimpostati (-0 ... -9 e --extreme)
       specificate in precedenza sulla riga di comando vengono dimenticate. Se un'opzione  livello  preimpostato
       viene  specificata  dopo  una  o  più  opzioni  della  catena  di filtri personalizzata, il nuovo livello
       preimpostato ha effetto e le opzioni della catena di  filtri  personalizzate  specificate  in  precedenza
       vengono dimenticate.

       Una  catena  di  filtri è paragonabile a una pipe sulla riga di comando. Durante la compressione, l'input
       non compresso va al primo filtro,  il  cui  output  va  al  filtro  successivo  (se  presente).  L'output
       dell'ultimo  filtro viene scritto nel file compresso. Il numero massimo di filtri nella catena è quattro,
       ma in genere una catena di filtri ha solo uno o due filtri.

       Molti filtri hanno limitazioni su dove possono trovarsi nella catena di  filtri:  alcuni  filtri  possono
       funzionare solo come ultimo filtro della catena, altri solo come filtro non ultimo e alcuni funzionano in
       qualsiasi  posizione nella catena. A seconda del filtro, questa limitazione è inerente alla struttura del
       filtro oppure esiste per evitare problemi di sicurezza.

       Una  catena  di  filtri  personalizzata  può  essere  specificata  in  due  modi  diversi.   Le   opzioni
       --filters=FILTRI  and  --filters1=FILTRI ... --filters9=FILTRI permettono di specificare un'intera catena
       di filtri in una opzione utilizzando la sintassi della stringa del filtro di lzma.  In  alternativa,  una
       catena  di  filtri  può  essere  specificata  utilizzando una o più singole opzioni di filtro nell'ordine
       desiderato nella catena di filtri. Questo significa che  l'ordine  delle  singole  opzioni  di  filtro  è
       importante!  Quando  si  decodificano  i  flussi  grezzi  (--format=raw), la catena di filtri deve essere
       specificata nello stesso ordine in cui è stata specificata  durante  la  compressione.  Qualsiasi  filtro
       individuale  o  opzione  livello  preimpostato  specificata  prima  dell'opzione  della  catena  completa
       (--filters=FILTRI) verrà dimenticata. I singoli filtri specificati dopo l'opzione della  catena  completa
       reimposteranno la catena di filtri.

       Sia  l'opzione  di filtro completo che quella individuale accettano OPZIONI specifiche del filtro come un
       elenco separato da virgole. Virgole in eccesso nelle OPZIONI vengono ignorate. Ogni opzione ha un  valore
       di default, quindi occorre specificare solamente quelle che si desidera modificare.

       Per  vedere  l'intera  catena  di  filtri  e OPZIONI, usa xz -vv (ossia, usa --verbose due volte). Questo
       funziona anche per visualizzare le opzioni della catena di filtri utilizzate dai livelli preimpostati.

       --filters=FILTRI
              Specifica l'intera catena dei filtri oppure un livello preimpostato in una singola  opzione.  Ogni
              filtro può essere separato da spazi o da due trattini (--). Potrebbe essere necessario mettere tra
              virgolette  i  FILTRI  sulla  riga  di comando della shell in modo che vengano analizzati come una
              singola opzione. Per indicare OPZIONI, usa : o =. Un livello preimpostato può essere preceduto  da
              un  - e seguito da zero o più flag. L'unico flag supportato è e per applicare le stesse opzioni di
              --extreme.

       --filters1=FILTRI ... --filters9=FILTRI
              Specifica fino a nove catene di filtri aggiuntive che possono essere utilizzate con --block-list.

              Ad esempio, quando si comprime un archivio con file eseguibili seguiti da file di testo, la  parte
              eseguibile  potrebbe utilizzare una catena di filtri con un filtro BCJ e la parte di testo solo il
              filtro LZMA2.

       --filters-help
              Mostra un messaggio di aiuto che descrive come specificare livelli preimpostati e catene di filtri
              personalizzati nelle opzioni --filters e --filters1=FILTRI ... --filters9=FILTRI,  e  termina  con
              successo.

       --lzma1[=OPZIONI]
       --lzma2[=OPZIONI]
              Aggiunge  un  filtro LZMA1 o LZMA2 alla catena dei filtri. Questi filtri possono essere usati solo
              come ultimo filtro della catena.

              LZMA1 è un filtro obsoleto, supportato quasi esclusivamente a causa del formato obsoleto  di  file
              .lzma,  che  supporta  solo  LZMA1.  LZMA2  è  una versione aggiornata di LZMA1 che risolve alcuni
              problemi pratici di LZMA1. Il formato .xz utilizza LZMA2 e non supporta LZMA1.  La  velocità  e  i
              rapporti di compressione di LZMA1 e LZMA2 sono praticamente gli stessi.

              LZMA1 e LZMA2 condividono lo stesso insieme di OPZIONI:

              preset=PRESET
                     Reimposta  tutte  le  OPZIONI  LZMA1  o  LZMA2  a  PRESET. Il PRESET (livello preimpostato)
                     consiste di un numero intero, che può essere seguito  da  modificatori  costituiti  da  una
                     singola  lettera.  Il  numero intero può andare da 0 a 9, corrispondenti alle opzioni della
                     riga di comando -0 ... -9. L'unico modificatore attualmente supportato è e, che corrisponde
                     a --extreme. Se non viene specificato alcun PRESET,  i  valori  predefiniti  delle  OPZIONI
                     LZMA1 o LZMA2 sono presi dal livello preimpostato 6.

              dict=DIMENSIONE
                     La  DIMENSIONEdel  dizionario  (buffer  di  cronologia)  indica  quanti  byte  dei dati non
                     compressi elaborati di recente vengono mantenuti in memoria. L'algoritmo tenta  di  trovare
                     sequenze  di  byte  ripetute  (corrispondenze)  nei dati non compressi e di sostituirle con
                     riferimenti ai dati attualmente presenti  nel  dizionario.  Più  grande  è  il  dizionario,
                     maggiore è la possibilità di trovare una corrispondenza. Quindi, l'aumento della DIMENSIONE
                     del  dizionario di solito migliora il rapporto di compressione, ma un dizionario più grande
                     del file non compresso è uno spreco di memoria.

                     Una DIMENSIONE tipica per un dizionario è da 64 KiB a 64 MiB. Il minimo è 4 KiB. Il massimo
                     per la compressione è  attualmente  1.5 GiB  (1536 MiB).  La  decompressione  supporta  già
                     dizionari fino a 4 GiB meno 1 byte, che è il massimo per i formati di flusso LZMA1 e LZMA2.

                     La  DIMENSIONE  del  dizionario  e  il  cercatore  di  corrispondenze  (CERCATORE)  insieme
                     determinano l'utilizzo della memoria del codificatore LZMA1 o LZMA2. Per la  decompressione
                     è  necessaria la stessa DIMENSIONE del dizionario utilizzata durante la compressione (o più
                     grande), quindi l'utilizzo della memoria del decodificatore è determinato dalla  dimensione
                     del  dizionario  utilizzato  durante  la  compressione.  Le intestazioni .xz memorizzano la
                     DIMENSIONE del dizionario come 2^n o 2^n + 2^(  n-1),  quindi  queste  DIMENSIONI  sono  in
                     qualche  modo  preferite  per  la  compressione.  Altre DIMENSIONI verranno arrotondate per
                     eccesso quando memorizzate nelle intestazioni .xz.

              lc=lc  Specificare il numero di bit di contesto letterali. Il minimo è 0 e  il  massimo  è  4;  Il
                     valore predefinito è 3. Inoltre, la somma di lc e lp non deve superare 4.

                     Tutti  i byte che non possono essere codificati come corrispondenze vengono codificati come
                     valori letterali. In altre parole, i valori letterali  sono  semplicemente  byte  a  8  bit
                     codificati uno alla volta.

                     La codifica letterale presuppone che i bit di lc più alti del byte non compresso precedente
                     siano  correlati  al  byte  successivo. Ad esempio, in un tipico testo inglese, una lettera
                     maiuscola è spesso seguita da una lettera minuscola e una lettera minuscola  è  solitamente
                     seguita  da  un'altra  lettera minuscola. Nel set di caratteri US-ASCII, i tre bit più alti
                     sono 010 per le lettere maiuscole e 011 per le lettere minuscole. Quando lc è almeno 3,  la
                     codifica letterale può sfruttare questa proprietà nei dati non compressi.

                     Il  valore  predefinito  (3)  solitamente  è buono. Se si desidera la compressione massima,
                     provare con lc=4. A volte aiuta un po', e a volte rende la  compressione  peggiore.  Se  la
                     rende peggiore, provare anche lc=2.

              lp=lp  Specificare  il  numero  di  bit di posizione letterale. Il minimo è 0 e il massimo è 4; Il
                     valore predefinito è 0.

                     Il parametro lp influisce sul tipo di allineamento nei dati non compressi presunto  durante
                     la   codifica  dei  valori  letterali.  Vedi  pb  di  seguito  per  ulteriori  informazioni
                     sull'allineamento.

              pb=pb  Specificare il numero di bit di posizione. Il minimo è 0  e  il  massimo  è  4;  Il  valore
                     predefinito è 2.

                     Il  parametro pb influisce su quale tipo di allineamento nei dati non compressi sia assunto
                     in generale. L'impostazione  predefinita  indica  un  allineamento  a  quattro  byte  (2^pb
                     =2^2=4), che è spesso una buona scelta se non c'è un'ipotesi migliore.

                     Quando  l'allineamento  è noto, impostare pb concordemente può ridurre un po' le dimensioni
                     del file. Ad esempio, con file di testo con 1 byte di allineamento  (US-ASCII,  ISO-8859-*,
                     UTF-8),  impostare  pb=0  può  migliorare leggermente la compressione. Per il testo UTF-16,
                     pb=1 è una buona scelta. Se l'allineamento è un numero dispari, come 3 byte, pb=0  potrebbe
                     essere la scelta migliore.

                     Anche  se l'allineamento assunto può essere regolato con pb e lp, LZMA1 e LZMA2 favoriscono
                     ancora  leggermente  l'allineamento  a  16  byte.  Potrebbe  valere  la  pena  tenerlo   in
                     considerazione quando si progettano formati di file che possono essere spesso compressi con
                     LZMA1 o LZMA2.

              mf=CERCATORE
                     Il  cercatore  di  corrispondenze ha un effetto importante sulla velocità del codificatore,
                     sull'utilizzo della memoria e sul rapporto  di  compressione.  Di  solito  i  cercatori  di
                     corrispondenze  a  catena  hash  sono  più veloci dei cercatori di corrispondenze ad albero
                     binario. Il valore predefinito dipende da PRESET : 0 usa hc3, 1–3 usa hc4 e  il  resto  usa
                     bt4.

                     Sono  supportati  i  seguenti  cercatori  di  corrispondenze.  Le formule di utilizzo della
                     memoria riportate di seguito sono approssimazioni, che  sono  le  più  vicine  alla  realtà
                     quando DIZIONARIO è una potenza di due.

                     hc3    Catena hash con hashing da 2 e 3 byte
                            Minimo valore per NICE: 3
                            Utilizzo memoria:
                            DIZIONARIO * 7.5 (se DIZIONARIO <= 16 MiB);
                            DIZIONARIO * 5.5 + 64 MiB (se DIZIONARIO > 16 MiB)

                     hc4    Catena hash con hash da 2, 3 e 4 byte
                            Minimo valore per NICE: 4
                            Utilizzo memoria:
                            DIZIONARIO * 7.5 (se DIZIONARIO <= 32 MiB);
                            DIZIONARIO * 6.5 (se DIZIONARIO > 32 MiB)

                     bt2    Albero binario con hashing da 2 byte
                            Valore minimo per NICE: 2
                            Utilizzo di memoria: DIZIONARIO * 9.5

                     bt3    Albero binario con hashing da 2 e 3 byte
                            Minimo valore per NICE: 3
                            Utilizzo memoria:
                            DIZIONARIO * 11.5 (se DIZIONARIO <= 16 MiB);
                            DIZIONARIO * 9.5 + 64 MiB (se DIZIONARIO > 16 MiB)

                     bt4    Albero binario con hashing da 2, 3 e 4 byte
                            Minimo valore per NICE: 4
                            Utilizzo memoria:
                            DIZIONARIO * 11.5 (se DIZIONARIO <= 32 MiB);
                            DIZIONARIO * 10.5 (se DIZIONARIO > 32 MiB)

              mode=MODALITÀ
                     La  MODALITÀ  di  compressione  specifica  il  metodo  per  analizzare  i dati prodotti dal
                     cercatore di corrispondenze. Le MODALITÀ supportate sono fast e normal.  Il  predefinito  è
                     fast per i PRESET 0–3 e normal per i PRESET 4–9.

                     Di  solito  fast  viene utilizzato con i cercatori di corrispondenze a catena hash e normal
                     con i cercatori di corrispondenze a albero binario. Questo  è  anche  quello  che  fanno  i
                     PRESET.

              nice=NICE
                     Specifica   quella   che   si   considera   una  lunghezza  accettabile  ("nice")  per  una
                     corrispondenza. Una volta trovata una  corrispondenza  di  almeno  NICE  byte,  l'algoritmo
                     smette di cercare corrispondenze potenzialmente migliori.

                     NICE  può  valere  2–273  byte.  Valori  più  alti  tendono  a  dare un miglior rapporto di
                     compressione ai danni della velocità. Il valore predefinito dipende dal PRESET.

              depth=PROFONDITÀ
                     Specificare la profondità di ricerca massima nel cercatore  di  corrispondenze.  Il  valore
                     predefinito  è  il valore speciale 0, che dice al compressore di determinare una PROFONDITÀ
                     ragionevole da CERCATORE e NICE.

                     Una PROFONDITÀ ragionevole per le catene hash è 4–100 e  16–1000  per  gli  alberi  binari.
                     Utilizzando  valori  di  PROFONDITÀ  molto alti si può rendere il codificatore estremamente
                     lento con alcuni file. Evitare di impostare la PROFONDITÀ oltre 1000  a  meno  che  si  sia
                     preparati a interrompere la compressione nel caso in cui richieda troppo tempo.

              Quando  si decomprime un flusso grezzo (--format=raw), LZMA2 ha bisogno solamente della DIMENSIONE
              del dizionario. LZMA1 ha anche bisogno di lc, lp, e pb.

       --x86[=OPZIONI]
       --arm[=OPZIONI]
       --armthumb[=OPZIONI]
       --arm64[=OPZIONI]
       --powerpc[=OPZIONI]
       --ia64[=OPZIONI]
       --sparc[=OPZIONI]
       --riscv[=OPZIONI]
              Aggiunge un filtro branch/call/jump (BCJ) alla catena dei filtri. Questi filtri non possono essere
              utilizzati come ultimo filtro nella catena di filtri.

              Un filtro BCJ converte gli indirizzi relativi in codice macchina nelle loro controparti  assolute.
              Questo  non  cambia  la dimensione dei dati ma aumenta la ridondanza, cosa che può aiutare LZMA2 a
              produrre .xz file 0–15 % più piccoli. I filtri BCJ sono sempre reversibili, quindi usare un filtro
              BCJ per il tipo di dati sbagliato non causa  perdita  di  dati,  al  massimo  può  determinare  un
              rapporto di compressione leggermente peggiore. I filtri BCJ sono molto veloci e usano una quantità
              di memoria minima.

              Questi filtri BCJ presentano problemi noti relativi al rapporto di compressione:

              •  Alcuni tipi di file contenenti codice eseguibile (ad esempio, file oggetto, librerie statiche e
                 moduli  del  kernel  Linux)  hanno  gli  indirizzi  nelle  istruzioni  riempiti  con  valori di
                 riempimento. Questi filtri BCJ eseguiranno comunque la  conversione  degli  indirizzi,  il  che
                 peggiorerà la compressione con questi file.

              •  Se  un  filtro  BCJ  viene  applicato  a  un  archivio,  è  possibile  che renda il rapporto di
                 compressione peggiore rispetto a non usare un filtro BCJ. Ad esempio,  se  ci  sono  eseguibili
                 simili  o addirittura identici, il filtraggio probabilmente renderà i file meno simili e quindi
                 la compressione sarà peggiore. Anche il contenuto dei file non eseguibili nello stesso archivio
                 può essere importante. In pratica bisogna provare con e senza filtro BCJ per vedere  quale  sia
                 il migliore in ogni situazione.

              Insiemi diversi di istruzioni hanno diversi allineamenti: il file eseguibile deve essere allineato
              a un multiplo di questo valore nei dati di input per far funzionare il filtro.

                     Filtro      Allineamento   Note
                     x86               1        32-bit o 64-bit x86
                     ARM               4
                     ARM-Thumb         2
                     ARM64             4        L'allineamento migliore è a 4096 byte
                     PowerPC           4        Solo big-endian
                     IA-64            16        Itanium
                     SPARC             4
                     RISC-V            2

              Dal  momento  che  i  dati  filtrati  da  BCJ solitamente sono compressi con LZMA2, il rapporto di
              compressione può essere migliorato leggermente se le opzioni LZMA2  sono  impostate  in  modo  che
              corrispondano all'allineamento del filtro BCJ selezionato. Esempi:

              •  Il  filtro  IA-64  ha  un  allineamento a 16 byte, quindi pb=4,lp=4,lc=0 è una buona scelta per
                 LZMA2 (2^4=16).

              •  Il codice RISC-V ha un allineamento a 2 o 4  byte  a  seconda  che  il  file  contenga  o  meno
                 istruzioni  16  bit compresse (cosiddetta estensione C). Quando sono usate istruzioni a 16 bit,
                 va bene pb=2,lp=1,lc=3 o pb=1,lp=1,lc=3. Quando le istruzioni a 16 bit  non  sono  presenti,  è
                 meglio  pb=2,lp=2,lc=2.  Si può usare readelf -h per controllare se "RVC" appare sulla riga del
                 "Flag".

              •  ARM64 è sempre allineato a 4 byte, quindi pb=2,lp=2,lc=2 è la scelta migliore.

              •  Il filtro x86 è un'eccezione. Di solito è bene attenersi alle impostazioni predefinite di LZMA2
                 (pb=2,lp=0,lc=3) quando si comprimono gli eseguibili x86.

              Tutti i filtri BCJ supportano le stesse OPZIONI:

              start=OFFSET
                     Specifica l'OFFSET  iniziale  utilizzato  per  la  conversione  tra  indirizzi  relativi  e
                     assoluti.  L'OFFSET deve essere un multiplo dell'allineamento del filtro (vedere la tabella
                     sopra). Il valore predefinito è zero.  In  pratica,  l'impostazione  predefinita  è  buona;
                     specificare un OFFSET personalizzato non è quasi mai utile.

       --delta[=OPZIONI]
              Aggiunge un filtro Delta alla catena dei filtri. I filtri Delta non possono essere utilizzati come
              ultimo filtro nella catena di filtri.

              Al  momento  è supportato solo un semplice calcolo delta byte-per-byte. Può essere utile quando si
              comprime, per esempio, immagini bitmap non compresse o file audio  PCM  non  compressi.  Tuttavia,
              speciali algoritmi ad-hoc potrebbero dare risultati significativamente migliori che Delta + LZMA2.
              Questo  è  vero  specialmente  per l'audio, che comprime più velocemente e meglio, ad esempio, con
              flac(1).

              OPZIONI supportate:

              dist=DISTANZA
                     Specifica la DISTANZA del calcolo delta in byte. DISTANZA deve essere nel range  1–256.  Il
                     valore predefinito è 1.

                     Per  esempio,  con dist=2 e un input di 8 byte A1 B1 A2 B3 A3 B5 A4 B7, l'output sarà A1 B1
                     01 02 01 02 01 02.

   Altre opzioni
       -q, --quiet
              Sopprime avvertimenti e avvisi. Specificarlo due volte per  eliminare  anche  gli  errori.  Questa
              opzione  non  ha  alcun effetto sullo stato di uscita. In altre parole, anche se un avvertimento è
              stato eliminato, lo stato di uscita che indica un avvertimento viene comunque utilizzato.

       -v, --verbose
              Sii prolisso. Se lo standard error è collegato a un terminale, xz visualizzerà  un  indicatore  di
              avanzamento. Specificando --verbose due volte si otterrà un output ancora più dettagliato.

              L'indicatore di avanzamento mostra le seguenti informazioni:

              •  La  percentuale  di  avanzamento  è mostrata se la dimensione del file input è nota. Quindi, la
                 percentuale non può essere mostrata nei pipe.

              •  Quantità di dati compressi prodotti (in compressione) o utilizzati (in decompressione).

              •  Quantità di dati non compressi consumati (in compressione) o prodotti (in decompressione).

              •  Rapporto di compressione, calcolato dividendo la quantità di dati compressi  processati  finora
                 con la quantità di dati non compressi processati finora.

              •  Velocità  di  compressione  o  decompressione.  Questa  è misurata come la quantità di dati non
                 compressi consumati (in compressione) o prodotti (in decompressione) al secondo. Viene mostrata
                 dopo che è trascorso qualche secondo da quando xz ha iniziato a processare il file.

              •  Tempo trascorso nel formato M:SS o H:MM:SS.

              •  Il tempo residuo stimato è mostrato solo quando la dimensione del file in  ingresso  è  nota  e
                 sono  già  passati un paio di secondi da quando xz ha iniziato a processare il file. Il tempo è
                 mostrato in un formato meno preciso che non ha mai i due punti, ad esempio 2 min 30 s.

              Quando lo standard error non è un terminale, --verbose farà stampare a xz il  nome  del  file,  la
              dimensione compressa, la dimensione non compressa, il rapporto di compressione, e potendo anche la
              velocità  e  il  tempo  trascorso, su una singola riga dello standard error, dopo aver compresso o
              decompresso il file. La velocità e il tempo trascorso sono inclusi solo se l'operazione  è  durata
              almeno un paio di secondi. Se l'operazione non è conclusa, ad esempio a causa dell'interruzione da
              parte dell'utente, viene stampata anche la percentuale di completamento, a patto che la dimensione
              del file input sia nota.

       -Q, --no-warn
              Non  impostare  lo  stato  di  uscita  a  2 anche se è stata rilevata una condizione che merita un
              avvertimento. Questa opzione non influisce sul  livello  di  dettaglio,  quindi  sia  --quiet  che
              --no-warn  devono  essere utilizzati per non visualizzare avvertimenti e per non alterare lo stato
              di uscita.

       --robot
              Stampa i messaggi in un formato analizzabile dal computer. Questo ha lo  scopo  di  facilitare  la
              scrittura  dei  frontend  che  vogliono usare xz invece di liblzma, che potrebbe essere il caso di
              vari script. Si intende che con questa opzione abilitata l'output dovrebbe rimanere stabile tra le
              versioni di xz. Per ulteriori informazioni, vedere la sezione MODALITÀ ROBOT.

       --info-memory
              Mostra, in un formato leggibile da umani, quanta memoria fisica (RAM) e quante thread xz pensa che
              il sistema abbia e i limiti di utilizzo di memoria per la compressione e la decompressione, quindi
              termina con successo.

       -h, --help
              Mostra un messaggio di aiuto che  descrive  le  opzioni  usate  più  comunemente,  e  termina  con
              successo.

       -H, --long-help
              Mostra un messaggio di aiuto che descrive tutte le funzionalità di xz, e termina con successo

       -V, --version
              Mostra  il numero di versione di xz e liblzma in un formato leggibile dagli umani. Per ottenere un
              output analizzabile da una macchina specificare --robot prima di --version.

MODALITÀ ROBOT

       La "modalità robot" viene attivata con l'opzione --robot. Rende l'output di xz più facile  da  analizzare
       da altri programmi. Attualmente --robot è supportato solo insieme a --list, --filters-help, --info-memory
       e --version. In futuro sarà supportato per la compressione e la decompressione.

   Modalità stampa
       xz  --robot  --list  usa  un  output  separato da tabulazione. La prima colonna di ogni riga contiene una
       stringa che indica il tipo di informazione contenuta in quella riga:

       name   Questa è sempre la prima riga quando si inizia a elencare un file. La seconda colonna della riga è
              il nome del file.

       file   Questa riga contiene informazioni generali sul file .xz. Questa riga viene sempre stampata dopo la
              riga name.

       stream Questo tipo di riga viene utilizzato solo quando è  stato  specificato  --verbose.  Sono  presenti
              tante righe stream quanti sono i flussi nel file .xz.

       block  Questo  tipo  di  riga  viene  utilizzato solo quando è stato specificato --verbose. Ci sono tante
              righe block quanti sono i blocchi nel file .xz. Le righe block vengono visualizzate dopo tutte  le
              righe stream; i diversi tipi di riga non vengono interlacciati.

       summary
              Questo  tipo  di riga viene utilizzato solo quando --verbose è stato specificato due volte. Questa
              riga viene stampata dopo tutte le righe block.  Come  la  riga  file,  la  riga  summary  contiene
              informazioni generali sul file .xz.

       totals Questa  riga  è  sempre  l'ultima  riga  dell'output  dell'elenco.  Mostra  i conteggi totali e le
              dimensioni.

       Le colonne delle righe file:
              2.  Numero di flussi nel file
              3.  Numero totale di blocchi nel flusso/i.
              4.  Dimensione compressa del file
              5.  Dimensione non compressa del file
              6.  Rapporto di compressione, es. 0.123. Se il rapporto  è  oltre  9999,  al  posto  del  rapporto
                  vengono mostrati tre trattini (---).
              7.  Elenco  separato  da virgole dei nomi dei controlli di integrità. Le stringhe seguenti vengono
                  utilizzate per i tipi di controllo conosciuti: None, CRC32, CRC64, e SHA-256. Per  i  tipi  di
                  controllo  non  conosciuti viene utilizzato Unknown-N, dove N è l'ID del controllo come numero
                  decimale (una o due cifre).
              8.  Dimensione totale del padding del flusso nel file

       Le colonne delle righe stream:
              2.  Numero di flusso (il primo è 1)
              3.  Numero di blocchi nel flusso
              4.  Offset iniziale compressione
              5.  Offset iniziale decompressione
              6.  Dimensione compressa (non include il padding del flusso)
              7.  Dimensione non compressa
              8.  Rapporto di compressione
              9.  Nome del controllo di integrità
              10. Dimensione del padding del flusso

       Le colonne delle righe block:
              2.  Numero di flussi che contengono questo blocco
              3.  Numero del blocco relativo all'inizio del flusso (il primo blocco è 1)
              4.  Numero del blocco relativo all'inizio del file
              5.  Offset iniziale compressione relativo all'inizio del file
              6.  Offset iniziale decompressione relativo all'inizio del file
              7.  Dimensione totale compressa del blocco (incluse le intestazioni)
              8.  Dimensione non compressa
              9.  Rapporto di compressione
              10. Nome del controllo di integrità

       Se --verbose viene specificato due volte, sono incluse colonne aggiuntive nelle righe block.  Queste  non
       sono  mostrate  con un --verbose singolo, perché recuperare queste informazioni richiede molte ricerche e
       quindi può essere lento:
              11. Valore del controllo di integrità in formato esadecimale
              12. Dimensione intestazione blocco
              13. Flag del blocco: cindica che è presente la dimensione compressa, u indica che  è  presente  la
                  dimensione  non  compressa.  Se  il  flag  non è impostato, viene mostrato un trattino (-) per
                  mantenere fissa la lunghezza della stringa. Nuovi flag potrebbero essere  aggiunti  alla  fine
                  della stringa in futuro.
              14. Dimensione dei dati compressi effettivi nel blocco (sono esclusi l'intestazione del blocco, il
                  padding del blocco e i campi di controllo)
              15. Quantità di memoria (in byte) necessaria per decomprimere questo blocco con questa versione xz
              16. Catena  di  filtri.  Si  noti  che  la maggior parte delle opzioni utilizzate al momento della
                  compressione non è nota,  perché  solo  le  opzioni  necessarie  per  la  decompressione  sono
                  memorizzate nelle intestazioni .xz.

       Le colonne delle righe summary:
              2.  Quantità di memoria (in byte) necessaria per decomprimere questo file con questa versione xz
              3.  yes  o  no  indica  se  tutte  le intestazioni di blocco contengono all'interno sia dimensioni
                  compresse che dimensioni non compresse
              A partire da xz 5.1.2alpha:
              4.  Versione minima di xz richiesta per decomprimere il file

       Le colonne delle righe totali:
              2.  Numero di flussi
              3.  Numero di blocchi
              4.  Dimensione compressa
              5.  Dimensione non compressa
              6.  Rapporto di compressione medio
              7.  Elenco separato da virgole dei nomi dei controlli di integrità presenti nei file
              8.  Dimensione del padding dello stream
              9.  Numero di file. Questo serve a mantenere l'ordine delle colonne  precedenti  uguale  a  quello
                  delle righe del file.

       Se --verbose viene specificato due volte, sono incluse colonne aggiuntive nella riga totali:
              10. Quantità  massima  di memoria (in byte) necessaria per decomprimere i file con questa versione
                  xz
              11. yes o no indica se tutte le intestazioni  di  blocco  contengono  all'interno  sia  dimensioni
                  compresse che dimensioni non compresse
              A partire da xz 5.1.2alpha:
              12. Versione minima di xz richiesta per decomprimere il file

       Versioni  future potrebbero aggiungere nuovi tipi di riga e nuove colonne possono essere aggiunte ai tipi
       di riga esistenti, ma le colonne esistenti non verranno modificate.

   Aiuto sui filtri
       xz --robot --filters-help stampa i filtri supportati nel seguente formato:

       FILTRO:OPZIONE=<VALORE>,OPZIONE=<VALORE>...

       FILTRO Nome del filtro

       OPZIONE
              Nome di un'opzione specifica del filtro

       VALORE Gli intervalli del VALORE numerico appaiono come <MIN-MAX>. Le scelte per i  VALORI  stringa  sono
              mostrati in < > e separati dal carattere |.

       Ogni filtro è mostrato su una riga dedicata.

   Informazione limite memoria
       xz --robot --info-memory stampa una singola riga con più colonne separate da tabulazione:

       1.  Quantità totale di memoria fisica (RAM) in byte.

       2.  Limite  utilizzo  memoria  per  la  compressione  in byte (--memlimit-compress). Il valore speciale 0
           indica l'impostazione predefinita, che in modalità thread singola equivale a nessun limite.

       3.  Limite utilizzo memoria per la decompressione in byte (--memlimit-decompress). Il valore  speciale  0
           indica l'impostazione predefinita, che in modalità thread singola equivale a nessun limite.

       4.  A  partire  da  xz 5.3.4alpha: Utilizzo della memoria per la decompressione a thread multiple in byte
           (--memlimit-mt-decompress).  Questo  valore  non  è  mai  zero  perché  viene  utilizzato  un  valore
           predefinito  specifico  del sistema mostrato nella colonna 5, se non è stato specificato alcun limite
           in modo esplicito. Inoltre, non è mai  maggiore  del  valore  nella  colonna  3,  anche  se  è  stato
           specificato un valore maggiore con --memlimit-mt-decompress.

       5.  A  partire  da  xz 5.3.4alpha: un limite di utilizzo della memoria predefinito specifico del sistema,
           che viene utilizzato per limitare  il  numero  di  thread  durante  la  compressione  con  un  numero
           automatico  di  thread (--threads=0) e non è stato specificato alcun limite di utilizzo della memoria
           (--memlimit-compress).   Questo   viene   utilizzato    anche    come    valore    predefinito    per
           --memlimit-mt-decompress.

       6.  A partire da xz 5.3.4alpha: Numero di thread del processore disponibili.

       In  futuro,  l'output  di  xz --robot --info-memory potrebbe avere più colonne, ma mai più di una singola
       riga.

   Versione
       xz --robot --version stampa il numero di versione di xz e liblzma nel seguente formato:

       XZ_VERSION=XYYYZZZS
       LIBLZMA_VERSION=XYYYZZZS

       X      Versione major.

       YYY    Versione minor. I numeri pari sono stabili. I numeri dispari sono versioni alfa o beta.

       ZZZ    Livello di patch per le versioni stabili o solo un contatore per le versioni di sviluppo.

       S      Stabilità. 0 è alfa, 1 è beta e 2 è stabile. S dovrebbe essere sempre 2 quando YYY è pari.

       XYYYZZZS sono uguali su entrambe le righe se xz e liblzma appartengono  allo  stesso  rilascio  delle  XZ
       Utils.

       Esempi: 4.999.9beta è 49990091 e 5.0.0 è 50000002.

CODICE DI USCITA

       0      Tutto bene.

       1      È avvenuto un errore.

       2      Si è verificato qualcosa che merita un avvertimento, ma non si sono verificati errori effettivi.

       Gli  avvisi (non gli avvertimenti o gli errori) stampati sullo standard error non influiscono sullo stato
       di uscita.

AMBIENTE

       xz analizza elenchi di opzioni separate da spazi dalle variabili  d'ambiente  XZ_DEFAULTS  e  XZ_OPT,  in
       questo  ordine,  analizzando  prima le opzioni dalla riga di comando. Si noti che solo le opzioni vengono
       analizzate dalle variabili d'ambiente; tutte le non-opzioni vengono ignorate  silenziosamente.  L'analisi
       viene eseguita con getopt_long(3) che viene utilizzato anche per gli argomenti della riga di comando.

       Attenzione:  Impostando  queste variabili di ambiente, si sta di fatto modificando programmi e script che
       lanciano xz. La maggior parte delle volte va bene impostare i limiti di utilizzo della memoria, il numero
       di thread e le opzioni di compressione tramite variabili d'ambiente.  Tuttavia,  alcune  opzioni  possono
       rompere  degli  script.  Un  esempio  banale  è --help che forza xz a mostrare la pagina di aiuto anziché
       comprimere o decomprimere file. Esempi meno ovvi sono --quiet e --verbose. In molti  casi  funziona  bene
       abilitare  l'indicatore  di avanzamento usando --verbose, ma in alcune situazioni i messaggi extra creano
       problemi. Il livello di prolissità influisce anche sul comportamento di --list.

       XZ_DEFAULTS
              Opzioni predefinite specifiche dell'utente  o  a  livello  di  sistema.  In  genere  questo  viene
              impostato  in  uno  script di inizializzazione della shell per abilitare il valore predefinito del
              limitatore di utilizzo della memoria di xz, o per  impostare  il  numero  di  thread  predefinito.
              Escludendo  gli script di inizializzazione della shell e analoghi casi particolari, gli script non
              dovrebbero mai impostare o annullare l'impostazione di XZ_DEFAULTS.

       XZ_OPT Questo serve per  passare  le  opzioni  a  xz  quando  non  sia  possibile  impostare  le  opzioni
              direttamente  sulla riga di comando di xz. Questo è il caso quando xz viene eseguito da uno script
              o da uno strumento, ad esempio GNU tar(1):

                     XZ_OPT=-2v tar caf foo.tar.xz foo

              Gli script possono usare XZ_OPT, per esempio, per impostare opzioni  di  compressione  predefinite
              specifiche  per  lo  script.  Si  raccomanda  comunque  di permettere agli utenti di sovrascrivere
              XZ_OPTse questo è ragionevole. Ad esempio, negli script sh(1) si può usare qualcosa come questo:

                     XZ_OPT=${XZ_OPT-"-7e"}
                     export XZ_OPT

COMPATIBILITÀ LZMA UTILS

       La sintassi della riga di comando di xz è essenzialmente un sopra-insieme di lzma, unlzma, e  lzcat  come
       trovati nelle LZMA Utils 4.32.x. Nella maggior parte dei casi è possibili sostituire le LZMA Utils con le
       XZ  Utils  senza  rompere  gli  script esistenti. Ci sono però alcune incompatibilità, che in alcuni casi
       potrebbero causare problemi.

   Livelli di compressione preimpostati
       La numerazione dei livelli di compressione preimpostati non è identica in  xz  e  nelle  LZMA  Utils.  La
       differenza  più  importante  è  il modo in cui le dimensioni del dizionario vengono mappate sulle diverse
       preimpostazioni. La dimensione del dizionario è approssimativamente uguale all'utilizzo della memoria del
       decompressore.

              Livello     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

       Le differenze di dimensione del dizionario influiscono anche sull'utilizzo della memoria del compressore,
       ma ci sono alcune altre differenze tra le LZMA Utils e le XZ Utils, che rendono la differenza ancora  più
       grande:

              Livello     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

       Il  livello  preimpostato  predefinito  nelle LZMA Utils è -7 mentre nelle XZ Utils è -6, quindi entrambi
       utilizzano un dizionario da 8 MiB per impostazione predefinita.

   File .lzma con flussi vs. senza flussi
       La dimensione non compressa del file può essere memorizzata nell'intestazione .lzma.  Le  LZMA  Utils  lo
       fanno  durante la compressione di file regolari. L'alternativa consiste nel memorizzare che la dimensione
       non compressa è sconosciuta e utilizzare l'indicatore di fine carico utile per indicare il punto  in  cui
       il decompressore deve fermarsi. Le LZMA Utils utilizzano questo metodo quando le dimensioni non compresse
       non sono note, come nel caso, ad esempio, delle pipe.

       xz  supporta  la  decompressione  di file .lzma con o senza il marcatore di fine payload, ma tutti i file
       .lzma creati da xz utilizzeranno il  marcatore  di  fine  payload  e  avranno  dimensioni  non  compresse
       contrassegnate  come  sconosciute  nell'intestazione  .lzma.  Questo  può  essere  un  problema in alcune
       situazioni non comuni. Ad esempio, un decompressore .lzma in un dispositivo embedded potrebbe  funzionare
       solo  con file con dimensioni non compresse note. Se si incorre in questo problema, occorre utilizzare le
       LZMA Utils oppure l'LZMA SDK per creare dei file .lzma con dimensioni non compresse note.

   File .lzma non supportati
       Il formato .lzma permette valori lc fino a 8, e valori lp fino a 4. Le LZMA  Utils  possono  decomprimere
       file  con  qualunque  lc  e lp, ma creeranno sempre file con lc=3 e lp=0. Creare file con altri lc e lp è
       possibile con xz e con l'LZMA SDK.

       L'implementazione del filtro LZMA1 in liblzma richiede che la somma di lc e  lp  non  debba  superare  4.
       Pertanto, i file .lzma che superano questa limitazione non possono essere decompressi con xz.

       Le  LZMA  Utils  creano solo file .lzma con dimensione del dizionario 2^n (una potenza di 2) ma accettano
       file con qualsiasi dimensione  di  dizionario.  liblzma  accetta  solo  file  .lzma  con  dimensione  del
       dizionario  2^n o 2^n + 2^(n-1). Questo serve a limitare i falsi positivi quando si cerca di identificare
       i file .lzma.

       All'atto pratico queste limitazioni non dovrebbero essere un problema, perché praticamente tutti  i  file
       .lzma sono stati compressi con impostazioni che liblzma accetterà.

   Dati sporchi finali
       Quando  si  decomprime,  le LZMA Utils ignorano automaticamente tutto quello che c'è dopo il primo flusso
       .lzma. Nella maggior parte delle situazioni questo è un baco. Questo significa anche che  le  LZMA  Utils
       non supportano la decompressione di file .lzma concatenati.

       Se  sono  rimasti  dati  dopo  il  primo flusso .lzma, xz considera il file corrotto a meno che sia stato
       utilizzato --single-stream. Questo può far rompere script incomprensibili che hanno assunto  che  i  dati
       sporchi finali vengano ignorati.

NOTE

   L'output compresso può variare
       L'esatto  output  compresso prodotto dallo stesso file di input non compresso può variare tra le versioni
       delle XZ Utils, anche se le opzioni di compressione sono le stesse. Questo  perché  il  codificatore  può
       essere  stato  migliorato  (compressione  più  veloce  o  migliore)  senza influire sul formato del file.
       L'output può variare anche tra diverse build della stessa versione delle XZ Utils, se vengono  utilizzate
       opzioni di build differenti.

       Quanto  sopra significa che una volta che --rsyncable è stato implementato, i file risultanti non saranno
       necessariamente rsync-abili a meno che sia i vecchi che i nuovi file non siano  stati  compressi  con  la
       stessa  versione  di  xz.  Questo  problema  può  essere  risolto  se  una parte dell'implementazione del
       codificatore viene congelata per mantenere stabile l'output rsync-abile tra le versioni di xz.

   Abilita i decompressori .xz
       Le implementazioni dei decompressori .xz embedded, come XZ Embedded, non necessariamente supportano  file
       creati  con  tipi di integrità CONTROLLO diversi da none e crc32. Dal momento che il valore predefinito è
       --check=crc64, occorre specificare --check=none  o  --check=crc32  quando  si  creano  file  per  sistemi
       embedded.

       Al  di  fuori  dei  sistemi  embedded,  tutti  i  decompressori in formato .xz supportano tutti i tipi di
       CONTROLLO, o almeno sono in grado di decomprimere il file senza verificare il controllo di  integrità  se
       il particolare CONTROLLO non è supportato.

       XZ Embedded supporta i filtri BCJ, ma solo con offset iniziale predefinito.

ESEMPI

   Informazioni di base
       Comprime  il  file foo in foo.xz utilizzando il livello di compressione predefinito (-6) e rimuove foo se
       la compressione ha esito positivo:

              xz foo

       Decomprime bar.xz in bar e non rimuove bar.xz anche se la decompressione ha successo:

              xz -dk bar.xz

       Crea baz.tar.xz con il preset -4e (-4 --extreme), che è più lenta della predefinita -6, ma ha bisogno  di
       meno memoria per la compressione e decompressione (48 MiB e 5 MiB, rispettivamente):

              tar cf - baz | xz -4e > baz.tar.xz

       Una  combinazione  di  file compressi e non compressi può essere decompressa sullo output standard con un
       singolo comando:

              xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt

   Compressione parallela di più file
       Su GNU e *BSD, find(1)  e xargs(1) possono essere usati per parallelizzare la compressione di più file:

              find . -type f \! -name '*.xz' -print0 \
                  | xargs -0r -P4 -n16 xz -T1

       L'opzione -p di xargs(1) imposta il numero di processi xz paralleli. Il valore migliore per l'opzione  -n
       dipende  dal  numero  di  file  da  comprimere. Se sono presenti solo un paio di file, il valore dovrebbe
       probabilmente essere 1; con decine di migliaia di file, 100 o anche di più  può  essere  appropriato  per
       ridurre il numero di processi xz che xargs(1) alla fine creerà.

       L'opzione  -T1 per xz serve a forzare la modalità a thread singola, perché xargs (1) viene utilizzato per
       controllare la quantità di parallelizzazione.

   Modalità robot
       Calcola quanti byte sono stati salvati in totale dopo la compressione di più file:

              xz --robot --list *.xz | awk '/^totals/{print $5-$4}'

       Uno script potrebbe voler sapere se si sta utilizzando una versione di xz  sufficientemente  recente.  Il
       seguente  script  sh(1)  controlla  che il numero di versione dello strumento xz sia almeno 5.0.0. Questo
       metodo è compatibile con le vecchie versioni beta, che non supportavano l'opzione --robot:

              if ! eval "$(xz --robot --version 2> /dev/null)" ||
                      [ "$XZ_VERSION" -lt 50000002 ]; then
                  echo "Your xz is too old."
              fi
              unset XZ_VERSION LIBLZMA_VERSION

       Imposta un limite di utilizzo della memoria per la decompressione utilizzando XZ_OPT, ma se è  già  stato
       impostato un limite, non lo aumenta:

              NEWLIM=$((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

   Catene di filtri di compressione personalizzate
       L'uso  più  semplice  delle catene di filtri personalizzate è la personalizzazione di un preset di LZMA2.
       Questo può essere utile, perché i preset coprono solamente un sottoinsieme di tutte  le  combinazioni  di
       impostazioni di compressione potenzialmente utili.

       Le  colonne CompCPU delle tabelle dalle descrizioni delle opzioni -0 ... -9 e --extreme sono utili quando
       si personalizzano i preset di LZMA2. Di seguito sono riportate le parti rilevanti raccolte da queste  due
       tabelle:

              Livello preimpostato   CompCPU
                      -0                0
                      -1                1
                      -2                2
                      -3                3
                      -4                4
                      -5                5
                      -6                6
                      -5e               7
                      -6e               8

       Se  si  sa  che un file richiede un dizionario piuttosto grande (ad esempio, 32 MiB) per essere compresso
       bene, ma si desidera comprimerlo più velocemente di quanto farebbe  xz  -8,  è  possibile  modificare  un
       preset con un basso valore CompCPU (ad esempio, 1) per utilizzare un dizionario più grande:

              xz --lzma2=preset=1,dict=32MiB foo.tar

       Con   alcuni   file,   il  comando  sopra  potrebbe  essere  più  veloce  di  xz  -6  e  la  compressione
       significativamente migliore. Tuttavia, si deve sottolineare che solo alcuni file traggono beneficio da un
       dizionario grande e mantengono basso il valore di CompCPU. La situazione più ovvia in cui  un  dizionario
       grande  può  aiutare  molto  è  un  archivio  contenente  file molto simili di almeno un paio di megabyte
       ciascuno. La dimensione del dizionario deve essere significativamente più grande di ogni singolo file per
       permettere a LZMA2 di trarre pieno vantaggio dalle somiglianze tra file consecutivi.

       Se l'utilizzo molto elevato della memoria del compressore e del decompressore è accettabile, e il file da
       comprimere è almeno di diverse centinaia di megabyte, potrebbe  essere  utile  utilizzare  un  dizionario
       ancora più grande dei 64 MiB che xz -9 utilizzerebbe:

              xz -vv --lzma2=dict=192MiB big_foo.tar

       L'uso  di  -vv (--verbose --verbose) come nell'esempio precedente può essere utile per vedere i requisiti
       di memoria del compressore e del decompressore. Tenere presente  che  l'utilizzo  di  un  dizionario  più
       grande  della dimensione del file non compresso è uno spreco di memoria, quindi il comando precedente non
       è utile per i file di piccole dimensioni.

       A volte il tempo di compressione non importa, ma l'utilizzo di  memoria  del  decompressore  deve  essere
       tenuta  bassa,  per  esempio,  per  permettere di decomprimere il file in un sistema embedded. Il comando
       seguente usa -6e (-6 --extreme)  come base e imposta il dizionario a soli 64 KiB. Il file risultante  può
       essere decompresso con XZ Embedded (ecco perché c'è --check=crc32) usando circa 100 KiB di memoria.

              xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo

       Se  si desidera spremere il maggior numero possibile di byte, a volte può essere utile regolare il numero
       di bit di contesto letterale (lc) e il numero di bit di posizione (pb). Anche la regolazione  del  numero
       di bit di posizione letterale (lp) potrebbe essere d'aiuto, ma di solito lc e pb sono più importanti. Per
       esempio,  un  archivio di codici sorgente contiene principalmente testo US-ASCII, quindi qualcosa come il
       seguente potrebbe produrre un file leggermente (0,1 %) più piccolo di xz -6e (provare anche senza lc=4):

              xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar

       Usare un altro filtro insieme a LZMA2 può migliorare la compressione per alcuni tipi di file. Ad esempio,
       per comprimere una libreria condivisa x86-32 o x86-64 usare il filtro BCJ:

              xz --x86 --lzma2 libfoo.so

       Si noti che l'ordine delle opzioni di filtro è significativo. Se viene specificato --x86 dopo --lzma2, xz
       darà un errore, perché non può esserci alcun filtro dopo LZMA2 e anche perché il filtro BCJ x86  non  può
       essere utilizzato come ultimo filtro della catena.

       Il  filtro  Delta  insieme  con  LZMA2 può dare buoni risultati sulle immagini bitmap. Di solito dovrebbe
       battere il PNG, il quale ha alcuni filtri più avanzati rispetto al semplice delta ma utilizza Deflate per
       la compressione effettiva.

       L'immagine deve essere  salvata in un formato non  compresso,  ad  esempio  un  TIFF  non  compresso.  Il
       parametro  distanza  del  filtro  Delta  è  impostato in modo che corrisponda al numero di byte per pixel
       nell'immagine. Per esempio, un bitmap a 24 bit richiede dist=3, e va anche bene passare pb=0 a LZMA2  per
       adattarsi all'allineamento a tre byte:

              xz --delta=dist=3 --lzma2=pb=0 foo.tiff

       Se più immagini sono state inserite in un singolo archivio (ad esempio, .tar), il filtro Delta funzionerà
       anche su questo purché tutte le immagini abbiano lo stesso numero di byte per pixel.

VEDERE ANCHE

       xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1), bzip2(1), 7z(1)

       XZ Utils: <https://xz.tukaani.org/xz-utils/>
       XZ Embedded: <https://xz.tukaani.org/xz-embedded/>
       LZMA SDK: <https://7-zip.org/sdk.html>

Tukaani                                            08/03/2025                                              XZ(1)