Compresión y descompresión:

Hoy en día existen cientos de programas con muchos formatos que sirven para empaquetar/desempaquetar y comprimir/descomprimir, pero el único que esta presente en la mayoría de los sistemas UNIX es el tar, con el podemos hacer todo lo anterior y mucho mas con todas las opciones que tiene y que podremos conocer viendo las paginas de su manual.
Para crear un nuevo archivo usamos c, para guardarlo en otro usamos f y para desempaquetarlo usamos x, así con 'tar cf holas.tar hola*' empaquetamos en 'holas.tar' todos los archivos del directorio actual que empiecen con 'hola' y con 'tar fx holas.tar' descomprimiria el archivo holas.tar:

$ ls
total 60
-rw-r--r-- 1 peter peter 30720 Mar 26 23:34 holajuan.txt
-rw-r--r-- 1 peter peter 24860 Mar 26 23:34 holasanti.txt
$ tar -cf holas.tar hola*
$ ls
total 124
-rw-r--r-- 1 peter peter 30720 Mar 26 23:34 holajuan.txt
-rw-r--r-- 1 peter peter 61440 Mar 26 23:37 holas.tar
-rw-r--r-- 1 peter peter 24860 Mar 26 23:34 holasanti.txt
$ rm holaju*
$ rm holasan*
$ ls
total 64
-rw-r--r-- 1 peter peter 61440 Mar 26 23:37 holas.tar
$ tar fx holas.tar
$ ls
total 124
-rw-r--r-- 1 peter peter 30720 Mar 26 23:34 holajuan.txt
-rw-r--r-- 1 peter peter 61440 Mar 26 23:37 holas.tar
-rw-r--r-- 1 peter peter 24860 Mar 26 23:34 holasanti.txt
$ rm holas.tar

Para comprimir usando gzip usamos z, por lo que 'tar cfz holas.tar.gz hola*' empaquetaría y comprimiría todos los archivos que empiecen con 'hola' y para desempaquetarlo y descomprimirlo usaríamos 'tar xzf holas.tar.gz':

$ ls
total 60
-rw-r--r-- 1 peter peter 30720 Mar 26 23:34 holajuan.txt
-rw-r--r-- 1 peter peter 24860 Mar 26 23:34 holasanti.txt
$ tar cfz holas.tar.gz hola*
$ ls
total 64
-rw-r--r-- 1 peter peter 30720 Mar 26 23:34 holajuan.txt
-rw-r--r-- 1 peter peter 1647 Mar 26 23:39 holas.tar.gz
-rw-r--r-- 1 peter peter 24860 Mar 26 23:34 holasanti.txt
$ rm holaju*
$ rm holasan*
$ ls
total 4
-rw-r--r-- 1 peter peter 1647 Mar 26 23:39 holas.tar.gz
$ tar xfz holas.tar.gz
$ ls
total 64
-rw-r--r-- 1 peter peter 30720 Mar 26 23:34 holajuan.txt
-rw-r--r-- 1 peter peter 1647 Mar 26 23:39 holas.tar.gz
-rw-r--r-- 1 peter peter 24860 Mar 26 23:34 holasanti.txt

Fíjate en la diferencia de tamaño del archivo .tar y del .tar.gz (5ª columna).

Una pequeña tabla con las opciones mas básicas de tar:

Opción: Significado:
-c Crea un nuevo archivo
-f El resultado se guarda en un archivo
-j Descomprime un .bz2
-k No sobreescribe al extraer
-t Lista el contenido de un .tar
-v Describe lo que va haciendo
-z Comprime con gzip
-Z Comprime con Compress (más antiguo)
-x Extrae archivos de otro archivo

Como hemos visto tar no es un programa de compresión/descompresión ya que para comprimir utiliza otro programa llamado gzip, los programas de compresión mas comunes son los siguientes:

gzip y compress:

Como tar no comprime, solo empaqueta, tiene que 'usar' a otro programa para comprimir.
Para comprimir uno o varios archivos no hace faltan opciones, para descomprimir usamos -d (fíjate en el tamaño antes y después de la compresión):

$ ls
total 124K
-rw-r--r-- 1 peter peter 30K Mar 26 23:34 holajuan.txt
-rw-r--r-- 1 peter peter 60K Mar 26 23:39 holas.tar
-rw-r--r-- 1 peter peter 25K Mar 26 23:34 holasanti.txt
$ gzip hola*
$ ls
total 12K
-rw-r--r-- 1 peter peter 885 Mar 26 23:34 holajuan.txt.gz
-rw-r--r-- 1 peter peter 1.7K Mar 26 23:39 holas.tar.gz
-rw-r--r-- 1 peter peter 768 Mar 26 23:34 holasanti.txt.gz
$ gzip -d hola*
$ ls
total 124K
-rw-r--r-- 1 peter peter 30K Mar 26 23:34 holajuan.txt
-rw-r--r-- 1 peter peter 60K Mar 26 23:39 holas.tar
-rw-r--r-- 1 peter peter 25K Mar 26 23:34 holasanti.txt

Una pequeña tabla con las opciones mas comunes de gzip:

Opción: Significado:
-d Descomprime.
-f Fuerza la acción.
-l Muestra una lista de los archivos comprimidos.
-r Comprime recursivamente.
-v Muestra lo que va haciendo.
-n Regula la velocidad y el tamaño, en donde 'n' es un numero del 1 al 9, el 1 es más rápido y el 9 esta más comprimido.

Conclusión:

Para empaquetar los archivos 'hola' y 'hola2' en holas.gz: tar -cf holas.tar hola*
Para desempaquetar hola y hola2 de holas.tar: tar -fx holas.tar

Para comprimir hola a hola.gz: gzip hola // tar -czf hola.gz hola
Para descomprimir hola.gz: gzip -d hola.gz // tar -zxf hola.gz

Para empaquetar y comprimir hola y hola2 en holas.tar.gz: tar -czf holas.tar.gz hol*
Para desempaquetar y descomprimir hola y hola2 que están en holas.tar.gz: tar -xzf holas.tar.gz

Tabla con las extensiones y los formatos de los programas de compresión mas populares:

Extensión: Formato:
.tar tar
.gz gzip
.tgz tar + gzip
.bz2 bzip2
.zip zip
.z compress