gzip
La orden gzip comprime (también descomprime) ficheros. Por cada fichero que se le pasa como argumento, crea otro comprimido con el mismo nombre y la extensión .gz. El fichero original se borra.
$ ls
ls.man rm.man
$ gzip ls.man rm.man
$ ls
ls.man.gz rm.man.gz
La opción -l nos muestra información sobre la compresión realizada:
$ gzip -l ls.man.gz rm.man.gz
compressed uncompressed ratio uncompressed_name
6751 20981 67.9% ls.man
1726 4061 58.1% rm.man
8477 25042 66.2% (totals)
La extensión que añade gzip por defecto es .gz, pero la podemos cambiar con la opción -S:
$ gzip -S .gzip ls.man rm.man
$ ls
ls.man.gzip rm.man.gzip
La opción -v muestra información de cómo va avanzando el trabajo de la orden gzip:
$ gzip -v ls.man rm.man
ls.man: 67.9% -- replaced with ls.man.gz
rm.man: 58.1% -- replaced with rm.man.gz
A veces nos interesa comprimir todo un directorio, incluido el contenido de sus subdirectorios, para ello usaremos la opción -r:
$ tree tmp
tmp
├── d
│ └── pwd.man
├── ls.man
└── rm.man
1 directory, 3 files
usuario@debian:~$ gzip -r tmp
usuario@debian:~$ tree tmp
tmp
├── d
│ └── pwd.man.gz
├── ls.man.gz
└── rm.man.gz
1 directory, 3 files
Podemos descomprimir directamente con gzip, sin necesidad de usar gunzip, pero tendremos que utilizar la opción -d:
$ ls
ls.man.gz rm.man.gz
$ gzip -d ls.man.gz rm.man.gz
$ ls
ls.man rm.man
El comando gzip si no lleva ficheros, entonces lee de la entrada estándar y para guardar la compresión tendremos que mandarla a la salida estándar y redireccionarla a un fichero; esto se consigue con la opción -c:
$ man ln | gzip -c > ln.man.gz
$ ls
ln.man.gz
En el ejemplo anterior, la orden man envía la página del manual del comando ln a la salida estándar, esta se conecta a la entrada estándar de gzip (|), que comprime y envía la compresión a la salida estándar (-c) y por último, esta a su vez es redireccionada al fichero ln.man.gz (>).
Por último, podemos comprobar la integridad de un fichero comprimido usando la opción -t :
$ gzip -t ln.man.gz
Licencia: licencia de software libre GPL