La comanda gunzip a Linux: descomprimir .gz | Iespai

La comanda gunzip a Linux: descomprimir fitxers .gz



La comanda gunzip descomprimeix fitxers .gz, els que crea gzip. Igual que gzip, treballa «al seu lloc»: informe.txt.gz es converteix en informe.txt i el .gz desapareix. Fer gunzip fitxer.gz és exactament el mateix que gzip -d fitxer.gz (de fet, a Debian gunzip és un petit script que crida gzip -d).

Sintaxi

gunzip [opcions] [fitxer...]

Sense fitxers, llegeix de l’entrada estàndard i escriu a la sortida estàndard.

Opcions més útils

OpcióQuè fa
-kConserva el fitxer .gz
-cEscriu el resultat a la sortida estàndard i no toca el .gz
-vMostra el percentatge de compressió de cada fitxer
-lMostra la mida comprimida i original, sense descomprimir
-tComprova que el fitxer no estigui malmès, sense descomprimir-lo
-rRecursiu: descomprimeix tots els .gz dins dels directoris indicats
-fSobreescriu el fitxer de sortida si ja existeix
-NRestaura el nom i la data originals guardats dins del .gz

Exemples

Descomprimir un fitxer:

$ gunzip informe.txt.gz
$ ls
informe.txt

Descomprimir i conservar el .gz:

gunzip -k informe.txt.gz

Veure què fa:

$ gunzip -v informe.txt.gz
informe.txt.gz:  66.8% -- replaced with informe.txt

Descomprimir tots els .gz del directori actual:

gunzip *.gz

Descomprimir a un altre nom (o a un altre directori) sense tocar l’original:

gunzip -c informe.txt.gz > /tmp/informe_copia.txt

Descomprimir tots els .gz d’un directori i dels seus subdirectoris. gunzip ja ho fa sol amb -r:

$ gunzip -rv logs
logs/app.log.gz:  65.5% -- replaced with logs/app.log
logs/vells/app.log.1.gz:  65.5% -- replaced with logs/vells/app.log.1

Si només vols els que compleixen alguna condició (per nom, data, mida…), fes servir find:

find logs -type f -name '*.gz' -mtime -7 -exec gunzip {} +

Veure la mida original sense descomprimir:

$ gunzip -l informe.txt.gz
         compressed        uncompressed  ratio uncompressed_name
             428484             1288895  66.8% informe.txt

Comprovar que una descàrrega no està malmesa:

gunzip -t copia.sql.gz && echo correcte

Llegir un .gz sense descomprimir-lo

Moltes vegades no cal descomprimir: només vols mirar o buscar alguna cosa. El paquet gzip inclou versions de les comandes de sempre que llegeixen directament fitxers comprimits:

zcat /var/log/dpkg.log.2.gz | tail      # zcat = gunzip -c
zless /var/log/dpkg.log.2.gz
zgrep 'install ' /var/log/dpkg.log.*.gz

Per exemple, per restaurar una còpia d’una base de dades sense crear el fitxer .sql al disc:

zcat botiga_2026-10-04.sql.gz | mysql botiga

Fitxers .tar.gz i .tgz

Un .tar.gz és un arxiu tar comprimit amb gzip. gunzip només treu la capa de compressió i et deixa el .tar; també entén l’extensió .tgz:

$ gunzip -v paquet.tgz
paquet.tgz:  65.5% -- replaced with paquet.tar

Normalment és més pràctic extreure-ho tot d’un sol cop amb tar:

tar -xzvf paquet.tar.gz

Compte amb…

  • Si el fitxer de sortida ja existeix, gunzip pregunta abans de sobreescriure’l. En un script (sense terminal) no el sobreescriu i dona error, tret que facis servir -f.
  • Extensions que no reconeix: gunzip només accepta fitxers acabats en .gz, -gz, .z, -z, _z, .tgz o .taz. Si no, respon unknown suffix -- ignored. Pots fer servir gunzip -c fitxer.dat > fitxer o indicar el sufix amb -S .dat.
  • No serveix per a .zip amb diversos fitxers: per a això tens unzip o 7za. Ni tampoc per a .bz2 (bunzip2) o .xz (xz -d).

Comandes relacionades

Esta web usa cookies.