Provided by: manpages-it_0.3.4-1_all bug

NOME

       bzip2, bunzip2 - compressore di file a ordinamento di blocco, v0.9.5
       bzcat - decomprime i file nello stdout
       bzip2recover - recupera dati da un file bzip2 danneggiato

SINTASSI

       bzip2 [ -cdfkqstvzVL123456789 ] [ nomifile ...  ]
       bunzip2 [ -fkvsVL ] [ nomifile ...  ]
       bzcat [ -s ] [ nomifile ...  ]
       bzip2recover nomefile

DESCRIZIONE

       bzip2  comprime i file usando l’algoritmo di compressione a ordinamento
       di blocco (block sorting) di Burrows-Wheeler e la codifica Huffman.  La
       compressione  è,  in generale, notevolmente migliore di quella ottenuta
       dai più convenzionali compressori basati su  LZ77/LZ78  e  si  avvicina
       alle prestazioni dei compressori statistici della famiglia PPM.

       Le  opzioni  della linea di comando sono deliberatamente molto simili a
       quelle del gzip GNU, ma non sono identiche.

       bzip2 accetta una lista di nomi di file affiancata  da  opzioni.   Ogni
       file  è  rimpiazzato  dalla  propria  versione  compressa,  con il nome
       "nome_originale.bz2".   Ogni  file  compresso  ha  la  stessa  data  di
       modifica,   gli   stessi   permessi  e,  quando  possibile,  lo  stesso
       proprietario  dell’originale  corrispondente,  in   modo   che   queste
       proprietà  possano  essere  correttamente ripristinate al momento della
       decompressione.  La gestione dei nomi di file è banale, visto  che  non
       ci  sono  meccanismi per preservare nomi originali dei file, permessi o
       date in filesystem che non hanno questi  concetti  o  che  hanno  serie
       restrizioni sulla lunghezza dei nomi di file, alla MS-DOS.

       bzip2  e  bunzip2 normalmente non sovrascrivono i file; per fare questo
       si specifichi l’opzione -f.

       Se sono stati dati nomi di file, bzip2 comprime  dallo  standard  input
       nello  standard  output.   In questo caso, bzip2 si rifiuta di scrivere
       l’output compresso, che sarebbe completamente incomprensibile e  quindi
       inutile, sul terminale.

       bunzip2  (o  bzip2 -d ) decomprime tutti i file dati. I file non creati
       da bzip2 saranno individuati e  ignorati,  mostrando  un  messaggio  di
       attenzione.   bzip2 cerca di dare un nome al file decompresso creandolo
       da quello compresso nel modo seguente:

              nomefile.bz2    diventa   nomefile
              nomefile.bz     diventa   nomefile
              nomefile.tbz2   diventa   nomefile.tar
              nomefile.tbz    diventa   nomefile.tar
              qualunquenome   diventa   qualunquenome.out

       Se il nome del file non termina in  uno  dei  modi  riconusciuti,  cioè
       .bz2, .bz, .tbz2 o .tbz, bzip2 si lamenta che è impossibile ricavare il
       nome originale del file e quindi usa quello dato sulla linea di comando
       con   l’aggiunta   dell’estensione  .out.   Come  per  la  compressione
       l’assenza dei nomi di file causa la decompressione da standard input  a
       standard output.

       bunzip2 decomprime correttamente un file che è la concatenazione di due
       o più file compressi ottenendo  la  concatenazione  dei  corrispondenti
       file  non  compressi.  È supportato anche il test di integrità (-t) dei
       file compressi concatenati.

       Passando l’opzione -c, si può  anche  comprimere  o  decomprimere  file
       nello  standard  output.   Con  questo  sistema più file possono essere
       compressi o  decompressi  e  gli  output  risultanti  sono  mandati  in
       sequenza  nello  stdout.   La  compressione  di più file in questo modo
       genera uno stream contenente la rappresentazione di più file compressi.
       Questo  stream può essere decompresso correttamente solo dalla versione
       0.9.0 o successiva di bzip2, mentre le  versioni  precedenti  di  bzip2
       terminano dopo la decompressione del primo file nello stream.

       bzcat (o bzip2 -dc ) decomprime tutti i file specificati nello standard
       output.

       bzip2 legge gli argomenti dalle variabili di ambiente BZIP2 e BZIP,  in
       questo  ordine, e le elabora prima di qualsiasi argomento della riga di
       comando; in questo modo si  possono  convenientemente  assegnare  degli
       argomenti predefiniti.

       La  compressione  è sempre effettuata, anche quando il file compresso è
       leggermente più grande dell’originale.  File con dimensioni inferiori a
       circa un centinaio di byte tendono a diventare più grandi, visto che il
       metodo di compressione tende ad  utilizzare  una  cinquantina  di  byte
       extra.   Dati  aleatori (incluso l’output di molti compressori di file)
       sono codificati a circa 8.05 bit per byte, dando quindi  un  espansione
       di circa 0.5%.

       Come  controllo  interno  di  protezione,  bzip2  usa  CRC a 32-bit per
       assicurarsi che  la  versione  decompressa  di  un  file  sia  identica
       all’originale.    Questo   protegge   contro  la  corruzione  dei  dati
       compressi, e contro i bachi, non ancora scoperti, in  bzip2  (si  spera
       rarissimi).   La  possibilità che non ci si accorga della corruzione di
       dati è microscopica: circa  una  su  quattro  miliardi  per  ogni  file
       elaborato.    Comunque,   questo   controllo   viene   fatto   dopo  la
       decompressione, quindi può solo rivelare un errore; non può  aiutare  a
       recuperare  i  dati originali non compressi.  Si può usare bzip2recover
       per provare a recuperare i dati da un file danneggiato.

       Valori  restituiti:  0  per   un’uscita   normale,   1   per   problemi
       nell’ambiente  (file  non  trovato,  opzioni non valide, errori di I/O,
       ecc.), 2 per indicare un file compresso corrotto, 3  per  un’incoerenza
       interna (baco) che manda bzip2 in allarme.

OPZIONI

       -c --stdout
              Comprime o decomprime nello standard output.

       -d --decompress
              Forza  la decompressione.  bzip2, bunzip2 e bzcat sono in realtà
              lo  stesso  programma,  e   la   decisione   su   quale   azione
              intraprendere  è  fatta  sulla base del nome utilizzato.  Questa
              opzione si sovrappone a questo meccanismo, e  forza  bzip2  alla
              decompressione.

       -z --compress
              Il contrario di -d: forza la compressione, ignorando il nome con
              cui è chiamato.

       -t --test
              Controlla l’integrità del file specificato, ma  non  decomprime.
              In realtà viene fatta una decompressione di prova e il risultato
              gettato via.

       -f --force
              Forza la sovrascrittura dei file di output.  Normalmente,  bzip2
              non  sovrascrive  i  file  di output esistenti.  Obbliga bzip2 a
              interrompere i collegamenti fisici (hard link) ai file.

       -k --keep
              Mantiene (non cancella) i file di input durante la  compressione
              o la decompressione.

       -s --small
              Riduce   l’uso   della   memoria,   per   la   compressione,  la
              decompressione e il test.  I file  sono  decompressi  e  testati
              usando  un  algoritmo  modificato che richiede solo 2,5 byte per
              blocco di byte. Questo significa che qualsiasi file  può  essere
              decompresso  in  2300K  di memoria, ma solamente alla metà della
              velocità normale.

              Durante la compressione, -s seleziona una dimensione  di  blocco
              di 200K, che limita l’uso della memoria a circa la stessa cifra,
              limitando il rapporto di compressione.  In breve, se la macchina
              ha  poca  memoria (8 megabyte o meno), si usi sempre -s.  Vedere
              sotto GESTIONE DELLA MEMORIA.

       -q --quiet
              Sopprime i messaggi di avvertimento  non  essenziali,  mentre  i
              messaggi  riguardanti  gli  errori di I/O e altri eventi critici
              non saranno eliminati.

       -v --verbose
              Modo verboso: mostra il rapporto di compressione per  ogni  file
              elaborato.   Ulteriori  -v incrementano il livello di verbosità,
              mostrando  molte  informazione  usate  principalmente  a   scopi
              diagnostici.

       -L --license -V --version
              Mostrano  la versione del software, i termini e le condizioni di
              licenza.

       -1 a -9
              Modificano la dimensione di blocco a 100 K,  200  K,  ..  900  K
              quando  comprime, mentre non hanno effetti sulla decompressione.
              Vedere sotto GESTIONE DELLA MEMORIA

       --     Tratta tutti gli argomenti seguenti come nomi di file, anche  se
              questi  iniziano  con  un  "-". Con questo è possibile elaborare
              file con nomi che  iniziano  con  "-",  per  esempio:  bzip2  --
              -nomefile

       --repetitive-fast --repetitive-best
              Questi   parametri   sono  ridondanti  nelle  versioni  0.9.5  e
              successive,   mentre   precedentemente   controllavano    alcuni
              comportamenti  nell’algoritmo di ordinamento, che talvolta erano
              utili.  Le  versioni  0.9.5  e  successive  hanno  un  algoritmo
              migliorato che rende questi parametri irrilevanti.

GESTIONE DELLA MEMORIA

       bzip2  comprime  i  grandi  file  in  blocchi.  La dimensione di blocco
       influenza sia il rapporto di compressione ottenuto che la  quantità  di
       memoria necessaria per la compressione e la decompressione.  Le opzioni
       da -1 a -9 specificano che la dimensione di blocco sarà rispettivamente
       da  100.000  byte  a  900.000  byte  (il  default).   Al  momento della
       decompressione la dimensione di blocco usata per la compressione  viene
       letta  dall’intestazione  del  file compresso, quindi bunzip2 alloca la
       memoria  necessaria  per  decomprimere  il  file.   Dal  fatto  che  la
       dimensione del blocco è inserita nei file compressi, ne consegue che le
       opzioni da -1 a -9  sono  irrilevanti  e  quindi  ignorate  durante  la
       decompressione.   La richiesta di memoria, in byte, per la compressione
       e la decompressione può essere stimata in:

            Compressione:   400K + ( 8 x dimensione blocco )

            Decompressione: 100K + ( 4 x dimensione blocco ), o
                            100K + ( 2.5 x dimensione blocco )

       Incrementi nella dimensione di blocco portano a rapide diminuizioni dei
       margini  di  guadagno.   Molta compressione viene dalla prime due o tre
       centinaia di K della dimensione di blocco, un fatto da tenere  presente
       quando  si  usa  bzip2 su piccole macchine.  Quindi è importante notare
       che la richiesta di memoria per la decompressione è  fatta  al  momento
       della compressione con la scelta della dimensione di blocco.

       Per  i  file compressi con la dimensione di blocco predefinita di 900K,
       bunzip2 richiede circa 3700 Kbyte per  la  decompressione.   Per  poter
       decomprimere  qualsiasi  file  su macchine da 4 megabyte, bunzip2 ha un
       opzione per decomprimere usando approssimativamente la metà  di  questa
       quantità   di  memoria,  cioè  2300  Kbyte.   Essendo  la  velocità  di
       decompressione dimezzata, questa opzione  va  usata  solo  in  caso  di
       necessità.  L’opzione in questione è -s.

       In  generale,  si  provi  a  usare  la  maggiore  dimensione  di blocco
       possibile, così da massimizzare la compressione ottenuta.  La  velocità
       di compressione e decompressione non è, teoricamente, influenzata dalla
       dimensione di blocco.

       Un altro punto significativo si applica ai file che sono  contenuti  in
       un singolo blocco -- il ché, usando una grande dimensione di blocco, si
       applica  a  molti  file.   La  quantità  di  memoria  reale   usata   è
       proporzionale alla dimensione del file, quando il file è più piccolo di
       un blocco.  Per esempio, la compressione di un file di 20.000 byte  con
       l’opzione  -9  causa  l’allocazione  da  parte del compressore di circa
       7600K di memoria, ma usa solamente 400K + 20000 * 8 = 560.  Similmente,
       il  decompressore  alloca 3700K ma usa solamente 100K + 20000 * 4 = 180
       Kbyte.

       Ecco una tabella che riassume l’uso massimo di  memoria  per  le  varie
       dimensioni di blocco.  Registra anche la dimensione compressa totale di
       14 file del "Calgary text compression  corpus"  totalizzante  3.141.622
       byte.    Questa   colonna  dà  alcune  indicazioni  di  come  varia  la
       compressione con le dimensioni  di  blocco  evidenziando  il  vantaggio
       della  grande dimensione di blocco per grandi file, mentre il Corpus ha
       soprattutto piccoli file.

                  Compres-   Decompres-   Decompres-   Dimensione
          Opzione   sione      sione      ione con -s   Corpus

            -1      1200K       500K          350K       914704
            -2      2000K       900K          600K       877703
            -3      2800K      1300K          850K       860338
            -4      3600K      1700K         1100K       846899
            -5      4400K      2100K         1350K       845160
            -6      5200K      2500K         1600K       838626
            -7      6100K      2900K         1850K       834096
            -8      6800K      3300K         2100K       828642
            -9      7600K      3700K         2350K       828642

RECUPERARE DATI DA FILE DANNEGGIATI

       bzip2 comprime i file in blocchi, di solito lunghi 900 Kbyte. Visto che
       ciascun  blocco  è modificato separatamente, se il supporto fisico o un
       errore di trasmissione causano un danneggiamento in un file .bz2 multi-
       blocco,  può  essere  possibile  recuperare  i  dati  dai  blocchi  non
       danneggiati nel file.

       La rappresentazione compressa di ogni blocco è delimitata da un modello
       a  48-bit,  che  dà  la possibilità di trovare il limite del blocco con
       ragionevole certezza.  Ogni blocco contiene il proprio  CRC  a  32-bit,
       così   i   blocchi  danneggiati  possono  distinguersi  da  quelli  non
       danneggiati.

       bzip2recover è un semplice programma  il  cui  scopo  è  di  cercare  i
       blocchi  in  un  file  .bz2.  Si  può  usare  bzip2  -t per controllare
       l’integrità dei file risultanti e decomprimere quelli non  danneggiati.

       bzip2recover  prende  un  singolo  argomento,  cioè  il  nome  del file
       danneggiato,  e  scrive  alcuni  file   del   tipo   "rec0001file.bz2",
       "rec0002file.bz2", ecc., contenenti i blocchi estratti. I nomi dei file
       di output sono  fatti  in  modo  da  poter  usare  metacaratteri  nelle
       elaborazioni  sucessive  --  per  esempio,  "bzip2  -dc  rec*file.bz2 >
       dati_recuperati" forma la lista dei file nell’ordine corretto.

       bzip2recover è utile se usato con file .bz2 grandi,  visto  che  questi
       contengono  molti  blocchi.  È  ovviamente  inutile  usarlo con un file
       contenente un solo blocco, a causa dell’impossibilità di recuperare  un
       blocco  danneggiato.  Quindi,  se  si  vuole  minimizzare le potenziali
       perdite  di  dati  causate  dai  supporti  fisici  o  dagli  errori  di
       trasmissione, si può comprimere con una piccola dimensione di blocco.

NOTE SULLE PRESTAZIONI

       La  fase  di ordinamento nella compressione riunisce le stringhe simili
       nel file, perciò i file contenenti simboli ripetuti in grande quantità,
       come  "aabaabaabaab  ..."  (ripetuto  molte centinaia di volte) possono
       essere compressi in modo più lento della norma.  Le  versioni  0.9.5  e
       successive  si  comportano  meglio  delle precedenti versioni in questo
       caso.  Il rapporto tra il tempo di compressione del caso peggiore e del
       caso medio è nella regione dei 10:1. Per le precedenti versioni, questo
       valore  era  vicino  a  100:1.   Si  può  usare  l’opzione  -vvvvv  per
       monitorare i progressi con maggior dettaglio.

       La velocità di decompressione non è influenzata da questo fenomeno.

       bzip2  normalmente  alloca  alcuni  megabyte  di  memoria per operare e
       successivamente ci carica tutto sopra in un  modo  abbastanza  casuale.
       Perciò  le prestazioni, sia in compressione che in decompressione, sono
       largamente influenzate dalla velocità  con  cui  la  macchina  serve  i
       "cache  miss".  A  causa  di  questo, piccoli cambiamenti al codice per
       ridurre  il  "miss   rate"   hanno   fatto   osservare   sproporzionati
       miglioramenti  nelle  prestazioni.   Immagino che bzip2 funzioni meglio
       sulle macchine con cache molto grandi.

AVVERTENZE

       I messaggi di errore di I/O non aiutano quanto dovrebbero.  bzip2 tenta
       duramente  di  individuare  gli  errori  di  I/O  e  uscirne bene, ma i
       dettagli sul problema verificatosi spesso non ci sono.

       Questa pagina di manuale descrive la versione 0.9.5 di bzip2.

       I dati compressi da questa versione sono interamente compatibili con  i
       precedenti  rilasci  pubblici, versioni 0.1pl2 e 0.9.0, con la seguente
       eccezione: 0.9.0 e successive possono correttamente  decomprimere  file
       compressi  concatenati multipli. Invece 0.1pl2 non lo può fare: termina
       dopo la decompressione del primo file nello stream.

       L’espansione dei metacaratteri in Windows 95 e NT  non  funziona  molto
       bene.

       bzip2recover usa interi a 32 bit per rappresentare la posizione dei bit
       nei file compressi, perciò non si possono manipolare file più lunghi di
       512 megabyte. Ciò potrebbe essere facilmente sistemato.

AUTORI

       Julian Seward, jseward@acm.org.

       http://www.muraroa.demon.co.uk

       Le  idee  utilizzate  da  bzip2  sono  merito  delle  seguenti  persone
       (almeno): Michael Burrows e David  Wheeler  (per  la  trasformazione  a
       ordinamento  di  blocco), David Wheeler (ancora, per il coder Huffman),
       Peter Fenwick (per il modello di  codifica  strutturato  nell’originale
       bzip,  e  molti  raffinamenti)  e  Alistair  Moffat, Radford Neal e Ian
       Witten (per il codificatore aritmetico nel bzip  originale).   Sono  in
       debito  per  il  loro  aiuto,  supporto e consigli.  Si veda il manuale
       nella distribuzione dei sorgenti per collegamenti  alla  documentazione
       dei  sorgenti.   Christian  von  Roques  mi  incoraggia  a  cercare  un
       algoritmo  di  ordinamento  veloce,   in   modo   da   velocizzare   la
       compressione.   Bela  Lubkin  mi incoraggia a migliorare le prestazioni
       del caso-peggiore durante la compressione.  Molte persone hanno mandato
       pezze,  aiutato  con  i  problemi  di  portabilità,  macchine prestate,
       consigli dati e loro aiuti in generale.

                                                                      bzip2(1)