Lo único que todos ustedes saben sobre Linux es que hay mucha variedad. Hay cientos de distribuciones de Linux, con docenas de entornos de escritorio, múltiples suites de oficina, paquetes gráficos y paquetes de audio.
Otra área en la que Linux proporciona variedad es cuando se trata de comprimir archivos.
Los usuarios de Windows ya sabrán lo que es un archivo zip y por lo tanto los comandos «zip» y «unzip» se utilizarán para comprimir y descomprimir archivos en el formato «zip».
Otro método para comprimir archivos es usar el comando «gzip» y para descomprimir un archivo con la extensión «gz» puede usar el comando «gunzip».
En esta guía, le mostraré otro comando de compresión llamado «bzip2».
Índice de contenidos
¿Por qué usar’bzip2′ sobre’gzip’?
El comando «gzip» utiliza el método de compresión LZ77. La herramienta de compresión «bzip2» utiliza el algoritmo «Burrows-Wheeler».
Entonces, ¿qué método debería usar para comprimir un archivo?
La prueba ejecuta cada comando usando los ajustes de compresión predeterminados y verá que el comando «bzip2» aparece en primer lugar cuando se trata de reducir el tamaño del archivo.
Sin embargo, si observamos el tiempo que se tarda en comprimir el archivo, se tarda mucho más en hacerlo.
Vale la pena señalar la tercera columna del gráfico que lleva la leyenda «lzmash». Esto equivale a ejecutar el comando «gzip» con el nivel de compresión ajustado a «-9» o para ponerlo en inglés, «most compressed».
El comando «lzmash» toma más tiempo que el comando «gzip» por defecto pero el archivo se reduce considerablemente y es más pequeño que el equivalente «bzip2». También vale la pena señalar que lleva menos tiempo hacerlo.
Su decisión, por lo tanto, será cuánto desea comprimir los archivos y cuánto tiempo está dispuesto a esperar a que suceda.
De cualquier manera, el comando «gzip» es ligeramente mejor en ambos casos.
Comprimir archivos usando ‘bzip2’
Para comprimir un archivo en formato «bzip2» ejecute el siguiente comando:
bzip2 nombre de archivoEl archivo será comprimido y ahora tendrá la extensión ".bz2"
El "bzip2" siempre intentará comprimir el archivo, incluso si el archivo se agranda como resultado. Esto puede suceder cuando está comprimiendo un archivo que ya ha sido comprimido.
Si intenta comprimir un archivo que dará como resultado el archivo con el mismo nombre que un archivo comprimido existente, se producirá un error.
Por ejemplo, si tiene un tipo de archivo llamado "file1" y la carpeta ya tiene un archivo llamado "file1.bz2", al ejecutar el comando "bzip" verá la siguiente salida:
bzip2: El archivo de salida1.bz2 ya existe.
Cómo descomprimir archivos
Hay muchas maneras diferentes de descomprimir archivos que tienen la extensión "bz2".
Puede utilizar el comando "bzip2" de la siguiente manera:
bzip2 -d nombrearchivo.bz2
Esto descomprimirá el archivo y eliminará la extensión "bz2".
Si al descomprimir el archivo se sobreescribe un archivo con el mismo nombre, aparecerá el siguiente error:
bzip2: El nombre del archivo de salida ya existe
Una forma más agradable de descomprimir archivos con la extensión "bz2" es usar el comando "bunzip2". Con este comando no es necesario especificar ningún parámetro como se muestra a continuación:
bunzip2 nombrearchivo.bz2
El comando "bunzip2" funciona exactamente igual que el comando "bzip2" con el interruptor menos d (-d).
El comando "bunzip2" puede extraer cualquier archivo válido que haya sido comprimido usando "bzip" o "bzip2". Además de descomprimir archivos ordinarios, también puede descomprimir archivos tar que han sido comprimidos usando el comando "bzip2".
Por defecto, los archivos tar comprimidos con el comando "bzip2" tendrán la extensión ".tbz2". Cuando descomprima este archivo usando el comando "bunzip2" el nombre del archivo se convierte en "filename.tar".
Si tiene un archivo válido que ha sido comprimido con "bzip2" pero tiene una extensión diferente a "bzip2" descomprimirá el archivo pero añadirá la extensión ".out" al final del archivo. Por ejemplo, "myfile.myf" se convertirá en "myfile.out".
Cómo forzar la compresión de archivos
Si desea que el comando "bzip2" comprima un archivo independientemente de si ya existe un archivo con la extensión "bz2", puede utilizar el siguiente comando:
bzip2 -f mi archivo
Si tiene un archivo llamado "myfile" y otro llamado "myfile.bz2", el archivo "myfile.bz2" se sobrescribirá cuando se comprima "myfile".
Cómo conservar ambos archivos
Si desea conservar el archivo que está comprimiendo y el archivo comprimido, puede utilizar el siguiente comando:
bzip2 -k mi archivo
Esto mantendrá el archivo "myfile" pero también lo comprimirá y creará un archivo "myfile.bz2".
También puede utilizar el interruptor menos k (-k) con el comando "bunzip2" para mantener tanto el archivo comprimido como el no comprimido mientras descomprime el archivo.
Comprobar la validez de un archivo "bz2"
Puede comprobar si un archivo está comprimido con el mecanismo de compresión "bzip2" utilizando el siguiente comando:
bzip2 -t nombrearchivo.bz2
Si el archivo es un archivo válido, no se devolverá ninguna salida, pero si el archivo no es válido, recibirá un mensaje que lo indicará.
Usar menos memoria al comprimir archivos
Si el comando "bzip2" está usando demasiados recursos mientras comprime un archivo, puede reducir el impacto especificando el interruptor menos s (-s) de la siguiente manera:
bzip2 -s nombrearchivo.bz2
Tenga en cuenta que tarda más tiempo en comprimir un archivo utilizando este parámetro.
Obtener más información al comprimir archivos
Por defecto, cuando se ejecutan los comandos "bzip2" o "bunzip2" no se recibe ninguna salida y el nuevo archivo simplemente aparece.
Si desea saber qué está pasando cuando comprime o descomprime un archivo, puede obtener una salida más detallada especificando el interruptor menos v (-v) de la siguiente manera:
bzip2 -v nombre de archivoLa salida aparecerá como sigue:
nombre de archivo: 1.172:1 6.872 bits/byte 14.66% guardado 50341 en 42961 outLas partes importantes son el porcentaje guardado, el tamaño de entrada y el tamaño de salida.
Recuperar archivos rotos
Si tiene un archivo "bz2" roto, el programa a utilizar para intentar recuperar los datos es el siguiente:
bzip2recuperar nombre de archivo.bz2