Comandos bzip2 bunzip2 para Linux
Los comandos bzip2 y bunzip2 de Linux se utilizan para comprimir y descomprimir archivos utilizando el algoritmo de compresión Bzip2. Su velocidad de compresión es algo más lenta que gzip, pero su compresión es mayor.
bzip2 [opciones] archivo
Debemos tener en cuenta que la compresión por defecto genera un archivo de extensión .bz2 y elimina el archivo original.
Para comprimir varios archivos debemos hacer uso previamente del comando tar para crear una «agrupación» con los archivos. Lo mismo ocurre si queremos comprimir un directorio.
En este ejemplo vamos a comprimir un fichero llamado hola.txt. Este comando generará el archivo hola.txt.bz2 y eliminará a hola.txt.
bzip2 hola.txt
Podemos observar la información que nos devuelve la terminal si después de la compresión ejecutamos el comando file de Linux.

Para descomprimir este archivo y recuperar el formato original utilizamos el comando bunzip2. El equivalente al comando bunzip2 es bzip2 -d.
bunzip2 hola.txt.bz2
Vamos a comprobar mediante un listado ls -l el peso del archivo que hemos comprimido y después realizaremos otra vez lo mismo para ver el peso del archivo descomprimido.
Se puede apreciar que el peso del archivo comprimido es menor al del archivo sin comprimir. La compresión funciona 🙂

Opciones con bzip2 bunzip2
Echar un vistazo a las diferentes opciones que existen en los comandos de Linux para optimizar y potenciarlos es una excelente idea. Puedes ver todas las que existen desde la terminal con el comando de ayuda man bzip2 o man bunzip2.
Ahora veremos algunas opciones:
- -d: descomprime el archivo en lugar de comprimirlo. Es el equivalente al comando bunzip2.
- -c: escribe la salida comprimida o sin comprimir sin eliminar el archivo original. Útil para redirigir la salida a otro archivo o comando.
- -k: mantiene el archivo original después de la compresión, creando un nuevo archivo con extensión .bz2
Veamos un ejemplo con las diferencias de usar las opciones -c y -k con el comando bzip2.
Opción -c para bzip2
En el tutorial de gzip -c redirigimos la salida de la compresión, para este ejemplo redirigiremos la salida de una descompresión.
¿Qué significa esto?
Tenemos un archivo llamado hola.txt.bz2 y queremos que el resultado de su descompresión (el contenido del archivo), se guarde en otro archivo nuevo que vamos a crear llamado info_descomprimida.txt.
bunzip2 -c hola.txt.bz2 > info_descomprimida.txt
Haciendo uso del comando cat de Linux mostramos el contenido del nuevo archivo.

De la misma forma pero usando bzip2 -c podríamos redirigir la salida comprimida a un archivo.
bzip2 -c hola.txt > info_comprimida.txt
Opción -k para bzip2
Ahora vamos a ver otro ejemplo haciendo uso del comando de Linux bzip2 -k con el mismo archivo de antes.
Con esta opción conseguimos crear un archivo comprimido llamado hola.txt.bz2 sin que nuestro archivo original hola.txt sea eliminado.
bzip2 -k hola.txt