La compresión es muy útil cuando se realizan copias de seguridad de archivos importantes y también cuando se envían archivos de gran tamaño a través de Internet. En este tutorial, discutiremos cómo comprimir y descomprimir archivos en Linux utilizando dos programas de línea de comandos, a saber, gzip y bzip2 .
Comprimir un archivo ya comprimido agrega una sobrecarga adicional, por lo que obtendrá un archivo un poco más grande. Entonces, deja de comprimir un archivo comprimido.
Comprimir y descomprimir archivos en Linux
Como ya se ha dicho, los programas más utilizados para comprimir archivos en Linux y sistemas similares a Unix son:
- gzip
- bzip2
Primero, veremos el uso de Gzip.
1. Comprime y descomprime archivos usando el programa Gzip
El gzip es una utilidad para comprimir y descomprimir archivos utilizando el algoritmo de codificación Lempel-Ziv (LZ77).
1.1 Comprimir archivos
Para comprimir un archivo llamado ostechnix.txt , reemplazándolo con una versión comprimida con gzip, ejecute:
$ gzip ostechnix.txt
Gzip reemplazará el archivo original ostechnix.txt con una versión comprimida con gzip llamada ostechnix.txt.gz .
El comando gzip también se puede usar de otras formas. Un buen ejemplo es que podemos crear una versión comprimida de la salida de un comando específico. Mira el siguiente comando.
$ ls -l Downloads/ | gzip > ostechnix.txt.gz
El comando anterior crea una versión comprimida de la lista de directorios de la carpeta Descargas.
1.2 Comprimir archivos y escribir la salida en diferentes archivos (no reemplace el archivo original)
De forma predeterminada, el programa gzip comprimirá el archivo dado, reemplazándolo con una versión comprimida con gzip. Sin embargo, puede conservar el archivo original y escribir la salida en la salida estándar. Por ejemplo, el siguiente comando comprime ostechnix.txt y escribe la salida en output.txt.gz .
$ gzip -c ostechnix.txt > output.txt.gz
De manera similar, para descomprimir un archivo comprimido con gzip especificando el nombre del archivo de salida:
$ gzip -c -d output.txt.gz > ostechnix1.txt
El comando anterior descomprime output.txt.gz y escribe la salida en ostechnix1.txt expediente. En ambos casos, no eliminará el archivo original.
1.3 Descomprimir archivos
Para descomprimir el archivo ostechnix.txt.gz , reemplazándolo con la versión original sin comprimir, hacemos:
$ gzip -d ostechnix.txt.gz
También podemos usar gunzip para descomprimir los archivos.
$ gunzip ostechnix.txt.gz
1.4 Ver el contenido de los archivos comprimidos sin descomprimirlos
Para ver el contenido del archivo comprimido usando gzip sin descomprimirlo, use -c bandera como se muestra a continuación:
$ gunzip -c ostechnix1.txt.gz
Alternativamente, use zcat utilidad como a continuación.
$ zcat ostechnix.txt.gz
También puede canalizar la salida al comando "menos" para ver la salida página por página como se muestra a continuación.
$ gunzip -c ostechnix1.txt.gz | less
$ zcat ostechnix.txt.gz | less
Alternativamente, hay un zless programa que realiza la misma función que la canalización anterior.
$ zless ostechnix1.txt.gz
1.5 Comprimir archivo con gzip especificando el nivel de compresión
Otra ventaja notable 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 un archivo llamado ostechnix.txt , reemplazándolo con una versión comprimida con gzip con mejor nivel de compresión, usamos:
$ gzip -9 ostechnix.txt
1.6 Concatenar varios archivos comprimidos
También es posible concatenar múltiples archivos comprimidos en uno. ¿Cómo? Echa un vistazo al siguiente ejemplo.
$ gzip -c ostechnix1.txt > output.txt.gz
$ gzip -c ostechnix2.txt >> output.txt.gz
Los dos comandos anteriores comprimirán ostechnix1.txt y ostechnix2.txt y los guardarán en un archivo llamado output.txt.gz .
Puede ver el contenido de ambos archivos (ostechnix1.txt y ostechnix2.txt) sin extraerlos usando cualquiera de los siguientes comandos:
$ gunzip -c output.txt.gz
$ gunzip -c output.txt
$ zcat output.txt.gz
$ zcat output.txt
Para obtener más detalles, consulte las páginas man.
$ man gzip
2. Comprime y descomprime archivos usando el programa bzip2
El bzip2 es muy similar al programa gzip, pero 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 terminarán en .bz2 extensión.
Como dije, el uso de bzip2 es casi el mismo que el de gzip. Simplemente reemplace gzip en los ejemplos anteriores con bzip2 , cremallera con bunzip2 , zcat con bzcat y así sucesivamente.
Para comprimir un archivo usando bzip2, reemplazándolo con una versión comprimida, ejecute:
$ bzip2 ostechnix.txt
Si no desea reemplazar el archivo original, use -c marcar y escribir la salida en un nuevo archivo.
$ bzip2 -c ostechnix.txt > output.txt.bz2
Para descomprimir un archivo comprimido:
$ bzip2 -d ostechnix.txt.bz2
O,
$ bunzip2 ostechnix.txt.bz2
Para ver el contenido de un archivo comprimido sin descomprimirlo:
$ bunzip2 -c ostechnix.txt.bz2
O,
$ bzcat ostechnix.txt.bz2
Para obtener más detalles, consulte las páginas man.
$ man bzip2
Lectura sugerida:
- Pigz - Comprime y descomprime archivos en paralelo en Linux
Resumen
En este tutorial, aprendimos qué son los programas gzip y bzip2 y cómo usarlos para comprimir y descomprimir archivos con algunos ejemplos en GNU/Linux. En la próxima guía, vamos a aprender cómo archivar archivos y directorios en Linux .