|
GZIP(1) manual page
Table of Contents
gzip, gunzip, zcat - comprime e decomprime i file
gzip
[ -acdfhlLnNrtvV19 ] [-S suffisso] [ nome ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffisso]
[ nome ... ]
zcat [ -fhLV ] [ nome ... ]
Gzip riduce la dimensione
dei file usando la codifica di Lempel-Ziv (LZ77). Quando è possibile, ogni
file è rimpiazzato da uno con l'estensione .gz, mantenendo le stesse proprietà,
date d'accesso e di modifica. (L'estensione di default è -gz per VMS, z per
MSDOS, OS/2 FAT, Windows NT FAT e Atari.) Se non è specificato alcun file,
o se un nome di file è "-", lo standard input è compresso nello standard
output. Gzip proverà a comprimere solo i file regolari. In particolare ignorerà
i link simbolici.
Se il nome del file compresso è troppo lungo per il
file system, gzip lo troncherà. Gzip prova a troncare solo le parti del
nome del file più lunghe di 3 caratteri (una parte è delimitata da puntini).
Se il nome consiste solo di parti piccole, le più lunghe sono troncate.
Per esempio, se i nomi di file sono limitati a 14 caratteri, gzip.msdos.exe
è compresso in gzi.msd.exe.gz. I nomi non sono troncati nei sistemi che non
hanno limite sulla lunghezza del nome del file.
Di default, gzip mantiene
il nome e la time stamp (data e ora di creazione) originali del file nel
file compresso. Queste sono usate quando si decomprime il file con l'opzione
-N. Ciò è utile quando il nome del file compresso è stato troncato o quando
le date non sono state preservate dopo un trasferimento del file.
I file
compressi possono essere riportati alla loro forma originale usando gzip
-d o gunzip o zcat. Se il nome originale salvato nel file compresso non
è adatto per questo file system, è costruito un nuovo nome da quello originale
per renderlo legale.
gunzip accetta una lista di file nella linea di comando
e rimpiazza ogni file il cui nome finisce con .gz, -gz, .z, -z, _z o .Z e che
inizia con il magic number corretto con un file decompresso senza l'estensione
originale. gunzip riconosce anche le estensioni speciali .tgz e .taz come
abbreviazioni per .tar.gz e .tar.Z rispettivamente. Quando comprime, gzip usa
se necessario l'estensione .tgz invece di troncare un file con estensione
.tar.
gunzip attualmente può decomprimere file creati da gzip, zip, compress,
compress -H o pack. Il rilevamento del formato d'ingresso è automatico. Quando
si usano i primi due formati, gunzip verifica un CRC a 32 bit. Per pack,
gunzip verifica la lunghezza del file decompresso. Il formato standard
compress non è stato progettato per permettere verifiche sulla consistenza.
Comunque gunzip è in grado qualche volta di rivelare un file .Z con errori.
Se si ottiene un errore quando si decomprime un file .Z, non si assuma
che il file è corretto solo perché l'uncompress standard non rileva l'errore.
Ciò in genere significa solo che l'uncompress standard non verifica il
suo input, e genera tranquillamente spazzatura in output. Il formato SCO
compress -H (metodo di compressione lzh) non include un CRC ma permette
comunque qualche verifica sulla consistenza.
I file creati da zip possono
essere decompressi da gzip solo se contengono un unico file compresso
con il metodo di `deflation'. Questa possibilità è pensata solo per aiutare
la conversione dei file tar.zip nel formato tar.gz. Per decomprimere file
zip con più membri si usi unzip invece di gunzip.
zcat è identico a gunzip
-c. (Su alcuni sistemi, zcat può essere installato come gzcat per preservare
il link originale a compress.) zcat decomprime o una lista di file nella
linea di comando o il suo standard input e scrive i dati decompressi nello
standard output. zcat decomprimerà i file che hanno il magic number corretto
che abbiano o meno il suffisso .gz.
Gzip usa l'algoritmo di Lempel-Ziv usato
in zip e PKZIP. L'ammontare della compressione ottenuta dipende dalla dimensione
dell'ingresso e dalla distribuzione delle sotto-stringhe comuni. Tipicamente,
testi come codici sorgenti o Inglesi sono ridotti del 60-70%. La compressione
è generalmente molto migliore di quella ottenibile da LZW (usato in compress),
codifica di Huffman (usata in pack), o codifica di Huffman adattativa
(compact).
La compressione è sempre fatta, perfino se il file compresso
è leggermente più grande del file originale. Il caso peggiore di espansione
è di alcuni bit per il gzip file header, più 5 byte ogni blocco da 32K,
o un rapporto di espansione del 0.015% per file più grandi. Si noti che
il numero di disk block realmente usati non viene mai incrementato. gzip
preserva il mode, le proprietà e le date dei file quando li comprime o
li decomprime.
- -a --ascii
- Ascii text mode: converte gli end-of-line
usando le convenzioni locali. Questa opzione è supportata solo su alcuni
sistemi non-Unix. Per MSDOS, CR LF è convertito in LF quando si comprime,
e LF è convertito in CR LF quando si decomprime.
- -c --stdout --to-stdout
- Scrive
l'uscita nello standard output; mantiene il file originale intatto. Se ci
sono più file in ingresso, l'uscita consiste di una sequenza di membri
compressi indipendentemente. Per ottenere una migliore compressione, si
concatenino tutti i file in ingresso prima di comprimerli.
- -d --decompress
--uncompress
- Decomprime.
- -f --force
- Forza la compressione o la decompressione
anche se il file ha link multipli o corrisponde a un file che già esiste,
o se i dati compressi sono letti da (o scritti in) un terminale. Se i dati
d'ingresso non sono in un formato riconosciuto da gzip, e se è data anche
l'opzione --stdout, copia i dati d'ingresso nello standard output senza modificarli:
fa sì che zcat si comporti come cat. Se non è dato -f, e quando non è lanciato
in background, gzip chiede la conferma quando deve sovrascrivere un file
che già esiste.
- -h --help
- Mostra un messaggio d'aiuto sullo schermo ed esce.
- -l --list
- Per ogni file compresso, elenca i seguenti campi:
| compressed
size: | dimensione del file compresso |
| uncompressed size: | dimensione
del file decompresso |
| ratio: | rapporto di compressione |
| | (0.0%
se è sconosciuto) |
| uncompressed_name: | nome del file decompresso |
La dimensione del file decompresso è resa pari a -1 per i file non nel
formato gzip, come i file compressi .Z. Per ottenere la dimensione decompressa
per ognuno di questi file, si può usare:
zcat file.Z | wc -c
Assieme
con l'opzione --verbose, sono mostrati anche i seguenti campi:
| method:
| metodo di compressione |
| crc: | il CRC a 32 bit dei dati decompressi
|
| date & time: | time stamp del file decompresso |
I metodi di compressione
attualmente supportati sono deflate, compress, lzh (SCO compress -H) e
pack. Il crc è reso pari a ffffffff per i file non in formato gzip.
Con
--name, il nome decompresso, la data e l'ora sono quelle salvate nel file
compresso (se presenti).
Con --verbose, sono mostrate anche la dimensione
totale e il rapporto di compressione per tutti i file, a meno che qualche
dimensione non sia sconosciuta. Con --quiet, non sono mostrati il titolo
e la linea dei totali.
- -L --license
- Mostra la licenza di gzip ed esce.
- -n --no-name
- Quando comprime, non salva di default il nome e la time stamp originali.
(Il nome originale è comunque salvato se deve essere troncato.) Quando
decomprime, non ripristina il nome del file originale se presente (rimuove
solo il suffisso gzip dal nome del file compresso). Questa opzione è di
default quando si decomprime.
- -N --name
- Quando comprime, salva sempre il
nome di file e la time stamp originali; è il comportamento di default.
Quando decomprime, ripristina il nome di file e la time stamp se sono
presenti. Questa opzione è utile su sistemi che hanno un limite sulla lunghezza
dei nomi dei file o quando le time stamp sono state perse dopo un transferimento
dei file.
- -q --quiet
- Sopprime tutti gli avvertimenti ("warning").
- -r --recursive
- Attraversa ricorsivamente la struttura della directory. Se qualcuno dei
nomi di file specificati nella linea di comando sono directory, gzip scenderà
dentro alla directory e comprimerà tutti i file che trova (o li decomprime
nel caso del gunzip).
- -S .suf --suffix .suf
- Usa il suffisso .suf invece di
.gz. Può essere dato qualsiasi suffisso, ma suffissi diversi da .z e .gz dovrebbero
essere evitati per evitare confusioni quando i file sono trasferiti su
altri sistemi. Un suffisso nullo forza gunzip a provare la decompressione
su tutti i file trascurando il suffisso, come in:
gunzip -S "" *
(*.* per MSDOS)
Le versioni precedenti di gzip usavano il suffisso
.z. Questo è stato cambiato per evitare conflitti con pack(1)
.
- -t --test
- Test.
Verifica l'integrità del file compresso.
- -v --verbose
- Verbose. Mostra il nome
e la percentuale di riduzione di ogni file compresso o decompresso.
- -V --version
- Versione. Mostra il numero della versione e le opzioni di compilazione
ed esce.
- -# --fast --best
- Regola la velocità di compressione usando la cifra
# specificata, dove -1 o --fast indicano il metodo di compressione più veloce
(minore compressione) e -9 o --best indicano il metodo di compressione più
lento (migliore compressione). Il livello di compressione di default è
-6 (cioè, più verso la migliore compressione a spese della velocità).
Possono essere concatenati più file compressi. In questo caso,
gunzip estrarrà tutti i membri assieme. Per esempio:
gzip -c file1
> foo.gz gzip -c file2 >> foo.gz
Allora gunzip -c foo
è equivalente
a
cat file1 file2
Nel caso di danneggiamento di uno dei file
membri del file .gz, gli altri membri possono ancora essere recuperati
(se il membro danneggiato è rimosso). Comunque, si possono ottenere migliori
compressioni comprimendo tutti i membri assieme:
cat file1 file2
| gzip > foo.gz
comprime meglio di
gzip -c file1 file2 > foo.gz
Se
si vuole ricomprimere file concatenati per ottenere una migliore compressione,
si esegua:
gzip -cd old.gz | gzip > new.gz
Se un file compresso contiene
diversi membri, la dimensione decompressa e il CRC riportati dall'opzione
--list si applicano solo all'ultimo membro. Se si ha bisogno della dimensione
decompressa per tutti i membri, si può usare:
gzip -cd file.gz | wc
-c
Se si vuole creare un solo file archivio con membri multipli in modo
tale che i membri possano essere più tardi estratti indipendentemente,
si usi un archiviatore come tar o zip. Il tar della GNU supporta l'opzione
-z che invoca gzip trasparentemente. gzip è stato pensato come un complemento
al tar, non come un rimpiazzo.
La variabile d'ambiente GZIP può
tenere un insieme di opzioni di default per gzip. Queste opzioni sono lette
per prime e possono essere soverchiate da espliciti parametri nella linea
di comando. Per esempio: per sh: GZIP="-8v --name"; export GZIP
per csh: setenv GZIP "-8v --name" per MSDOS: set GZIP=-8v --name
Su Vax/VMS, il nome della variabile d'ambiente è GZIP_OPT, per evitare
conflitti con l'insieme di simboli per invocare il programma.
znew(1)
, zcmp(1)
, zmore(1)
, zforce(1)
, gzexe(1)
, zip(1)
, unzip(1)
, compress(1)
,
pack(1)
, compact(1)
Lo stato d'uscita è normalmente 0; se
avviene un errore, lo stato d'uscita è 1. Se avviene un warning, lo stato
d'uscita è 2.
Uso: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] Opzioni non
valide sono state specificate nella linea di comando. file: not in gzip
format Il file specificato a gunzip non era un file compresso. file:
Corrupt input. Use zcat to recover some data. Il file compresso è danneggiato.
I dati fino al punto di fallimento possono essere recuperati usando zcat
file > recover file: compressed with xx bits, can only handle yy bits
Il file era stato compresso (usando LZW) da un programma che può lavorare
con più bit del codice di decompressione su questa macchina. Si ricomprima
il file con gzip, che comprime meglio e usa meno memoria. file: already
has .gz suffix -- no change Il file è supposto essere già compresso. Lo si
rinomini e si ritenti. file already exists; do you wish to overwrite (y
or n)? Si risponda con "y" se si vuole che il file d'uscita sia rimpiazzato;
"n" se non si vuole. gunzip: corrupt input È stata rilevata una violazione
SIGSEGV che di solito significa che i dati d'ingresso sono corrotti. xx.x%
Percentuale dell'ingresso salvata dalla compressione. (Rilevante solo
per -v e -l.) -- not a regular file or directory: ignored Quando il file
d'ingresso non è un file regolare o è una directory (p. es. un link simbolico,
un socket, una FIFO, un device file), è lasciato inalterato. -- has xx
other links: unchanged Il file d'ingresso ha dei link; è lasciato inalterato.
Si veda ln(1)
per maggiori informazioni. Si usi il flag -f per forzare la
compressione di file con link multipli.
Quando si scrivono
dati compressi su un nastro, è in genere necessario completare l'uscita
con zeri fino alla fine del blocco. Quando i dati sono letti e l'intero
blocco è passato a gunzip per la decompressione, gunzip rileva che c'è
della roba in più dopo i dati compressi e di default mostra un warning.
Si deve usare l'opzione --quiet per sopprimere il warning. Questa opzione
può essere settata nella variabile d'ambiente GZIP, ad esempio:
|
per sh: | GZIP="-q" tar -xfz --block-compress /dev/rst0 |
| per csh: | (setenv
GZIP -q; tar -xfz --block-compr /dev/rst0 |
Nell'esempio precedente, gzip è
invocato implicitamente dall'opzione -z del GNU tar. Assicurarsi che sia
usata la stessa dimensione dei blocchi (l'opzione -b del tar) sia per la
lettura che la scrittura dei dati compressi sul nastro. (Questo esempio
assume che si usi la versione GNU del tar.)
L'opzione --list riporta
dimensioni incorrette se queste superano i 2 gigabyte. L'opzione --list riporta
dimensioni pari a -1 e crc pari a ffffffff se il file compresso è in un
dispositivo "non ricercabile".
In qualche raro caso, l'opzione --best dà
una compressione peggiore del livello di compressione di default (-6). In
alcuni file altamente ridondanti, compress comprime meglio di gzip.
Table of Contents
|