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
El artículo Comprimir y descomprimir archivos utilizando gzip y bzip2 ha sido originalmente publicado en Ubunlog.