Comprimir y descomprimir archivos utilizando gzip y bzip2

En el siguiente artículo vamos a echar un vistazo a como comprimir y descomprimir archivos utilizando gzip y bzip2. La compresión es muy útil cuando se realizamos copias de seguridad de archivos importantes o cuando enviamos archivos de gran tamaño a través de Internet. Hoy en día hay muchos programas para comprimir y descomprimir archivos en GNU/Linux.

Un compañero ya nos habló de algunos de estos programas como rar y zip en este mismo blog. En este tutorial, vamos a echar un vistazo a dos de ellos solamente, como son gzip y bzip2. Como digo, vamos a ver cómo usarlos para comprimir y descomprimir archivos con algunos ejemplos en Ubuntu.

Comprimir y descomprimir archivos utilizando gzip y bzip2

El programa gzip

Gzip es una utilidad para comprimir y descomprimir archivos utilizando el algoritmo de codificación Lempel-Ziv (LZ77).

  • Comprimir archivos

Para comprimir un archivo llamado ubunlog.txt, reemplazándolo por una versión comprimida, ejecutaremos en la terminal (Ctrl+Alt+T):

gzip ubunlog.txt

Gzip reemplazará el archivo original llamado ubunlog.txt por una versión comprimida denominada ubunlog.txt.gz.

El comando gzip también puede usarse de otras maneras. Un buen ejemplo es que podemos crear una versión comprimida del resultado de un comando específico. Mira el siguiente comando.

ls -l ../../Descargas / | gzip > ubunlog.txt.gz

El comando anterior crea una versión comprimida de la lista de archivos de la carpeta Descargas.

  • Comprimir y descomprimir conservando el archivo original

Por defecto, el programa gzip comprimirá el archivo dado, reemplazándolo con una versión comprimida. Sin embargo, podremos conservar el archivo original y escribir el resultado en una salida estándar. Por ejemplo, el siguiente comando, comprime ubunlog.txt y escribe el resultado en salida.txt.gz.

gzip -c ubunlog.txt > salida.txt.gz

Del mismo modo, podremos descomprimir un archivo comprimido especificando el nombre del archivo de salida:

gzip -c -d salida.txt.gz > ubunlog1.txt

El comando anterior descomprime el archivo salida.txt.gz y escribe el resultado en el archivo ubunlog1.txt. En los dos casos anteriores, no se eliminará el archivo original.

  • Descomprimir archivos

Para descomprimir el archivo ubunlog.txt.gz, reemplazándolo por la versión original sin comprimir, usaremos en la terminal (Ctrl+Alt+T) el siguiente comando:

gzip -d ubunlog.txt.gz

También podemos usar gunzip para descomprimir los archivos.

gunzip ubunlog.txt.gz
  • Ver el contenido de los archivos comprimidos sin descomprimirlos

Para ver el contenido del archivo comprimido sin descomprimirlo usando gzip, utilizaremos la opción -c como se muestra a continuación:

gunzip -c ubunlog1.txt.gz

También podremos usar la utilidad zcat para el mismo fin, como a continuación:

zcat ubunlog.txt.gz

Vamos a poder canalizar la salida usando el comando “less” para ver la salida página por página como se muestra a continuación:

gunzip -c ubunlog.txt.gz | less

El comando less lo podremos utilizar también con zcat:

zcat ubunlog.txt.gz | less

También tendremos la opción de utilizar el programa zless. Este realiza la misma función que las tuberías anteriores:

zless ubunlog.txt.gz

Podemos salir de la paginación pulsando la tecla q.

  • Comprimir el archivo con gzip especificando el nivel de compresión

Otra ventaja a tener en cuenta de gzip es que admite el nivel de compresión. Admite 3 niveles de compresión como se indica a continuación.

1 – Más rápido (peor)
9 – Más lento (mejor)
6 – Nivel predeterminado

Para comprimir el archivo llamado ubunlog.txt, reemplazándolo con una versión comprimida con el mejor nivel de compresión, utilizaremos:

gzip -9 ubunlog.txt
  • Concatenar múltiples archivos comprimidos

Otra posibilidad que nos ofrece gzip es la de concatenar múltiples archivos comprimidos en uno. Esto lo podremos hacer de la siguiente forma:

gzip -c ubunlog1.txt > salida.txt.gz

gzip -c ubunlog2.txt >> salida.txt.gz

Los dos comandos anteriores comprimirán ubunlog1.txt y ubunlog2.txt y los guardará en un solo archivo llamado salida.txt.gz.

Podremos ver el contenido de los archivos (ubunlog1 .txt y ubunlog1.txt) sin extraerlos utilizando cualquiera de los siguientes comandos:

gunzip -c salida.txt.gz

gunzip -c salida.txt

zcat salida.txt.gz

zcat salida.txt

Para obtener más detalles acerca de gzip, se pueden consultar las páginas man:

man gzip

El programa bzip2

El bzip2 es muy similar al programa gzip. La principal diferencia es que utiliza un algoritmo de compresión diferente llamado algoritmo de compresión de texto de clasificación de bloques Burrows-Wheeler y codificación Huffman. Los archivos comprimidos con bzip2 finalizarán con la extensión .bz2.

Como dije, el uso de bzip2 es casi lo mismo que gzip. Simplemente tendremos que reemplazar gzip en los ejemplos anteriores por bzip2, gunzip por bunzip2, zcat con bzcat y así sucesivamente.

  • Comprimir archivos

Para comprimir un archivo usando bzip2, reemplazándolo por una versión comprimida, ejecutaremos:

bzip2 ubunlog.txt
  • Comprimir los archivos sin eliminar el archivo original

Si no queremos reemplazar el archivo original, utilizaremos la opción -c y escribiremos el resultado en un nuevo archivo.

bzip2 -c ubunlog.txt > salida.txt.bz2
  • Descomprimir archivos

Para descomprimir un archivo comprimido utilizaremos alguna de las dos siguientes posibilidades:

bzip2 -d ubunlog.txt.bz2

bunzip2 ubunlog.txt.bz2
  • Ver el contenido de los archivos comprimidos sin descomprimirlos

Para ver el contenido de un archivo comprimido sin descomprimirlo, no tendremos más que utilizar cualquiera de las opciones:

bunzip2 -c ubunlog.txt.bz2

bzcat ubunlog.txt.bz2

Para más detalles, podemos consultar las páginas man:

man bzip2


Categorías

Ubuntu

Damian Amoedo

Aficionado a la programación. Apasionado del software libre. Dispuesto a aprender de todo para después contarlo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.