Cómo comprimir y descomprimir ficheros en Linux

En este artículo te vamos a enseñar a comprimir y descomprimir ficheros desde tu distribución GNU/Linux favorita, todo usando comandos desde la consola. Es un artículo orientado a los principiantes y en él no vamos a incluir el tratamiento de tarballs como en otros tutoriales, ya que solo se mostrará cómo se realiza la compresión y descompresión sin empaquetarlos con la maravillosa herramienta tar.

Aunque la compresión y descompresión es algo relativamente sencillo, los usuarios suelen bucar bastante por Internet cómo se realizan estas acciones. Supongo que a diferencia de otros sistemas operativos como MacOS y Windows donde se usan herramientas gráficas muy concretas e intuitivas, en GNU/Linux se suelen presentar mayor cantidad de formatos y diversas herramientas para cada uno de ellos, aunque también existen herramientas sencillas a nivel gráfico…

Para la compresión y descompresión vamos a usar dos paquetes fundamentales, ya que son, probablemente, los formatos más demandados y con los que nos topamos con mayor frecuencia cuando estamos trabajando en sistemas tipo Unix. Me estoy refiriendo a gzip y bzip2.

Trabajando con gzip

Para comprimir con gzip, el formato que vamos a manejar es Lempel-Zi (LZ77), y no ZIP como tal, ya que por el nombre puede llevar a confusiones. El nombre proviene de GNU ZIP, y se hizo como sustituito del formato ZIP, pero no es el mismo. Quiero dejar eso claro… Pues bien, para comprimir un fichero:

gzip documento.txt

Eso genera un fichero llamado igual al original con la extensión .gz, en el ejemplo anterior sería documento.txt.gz. En cambio, para modificar el nombre de salida por uno concreto:

gzip -c documento.txt > nuevo_nombre.gz

Para descomprimir lo que ya está comprimido, es igualmente sencillo, aunque podemos usar dos comandos diferentes con igual efecto:

gzip -d documento.gz

gunzip documento.gz

Y obtendremos el fichero descomprimido sin extensión .gz.

Trabajando con bzip2

En cuanto a bzip2, es similar al anterior programa, pero con un algoritmo de compresión diferente llamado Burrows-Wheeler y Huffman coding.  La extensión que tenemos en este caso es .bz2. Para poder comprimir un fichero, tan solo debemos usar:

bzip2 documento.txt

Con lo que se consigue un documento.txt.bz2 comprimido. Igualmetne podemos variar el nombre de salida con la opción -c:

bzip2 -c documento.txt > nombre.bz2

Para la descompresión serí ausar la opción -d o la herramienta bunzip2 que es un alias:

bzip2 -d documento.bz2

gunbzip2 documento.bz2

Para más información puedes usar man seguido del comando…


3 comentarios

  1.   Jaime Perea dijo

    Hola,

    Muchas gracias por tus posts, siempre son útiles.

    Quizás sería interesante también mencionar xz, ya que también se está utilizando bastante. Ocupa un sitio intermedio entre bzip2 (lento, pero comprime un montón) y gzip (rápido, pero menos eficiente). Esto a grandes rangos, porque como todo… depende. Los tar incluidos en los ficheros .deb de Debian/Ubuntu suelen venir comprimidos en el formato xz.

    La manera de usarlo es similar a los otros sos comandos.

  2.   Ernesto dijo

    Hola quisiera pedir que se hiciera esto mismo pero con tar.gz ya que es el más utilizado (a mi entender según todo lo que descargo de internet)

  3.   Jolt2bolt dijo

    Que dicen de formatos mas populares pero multiplataforma como .7z? Deberian nombrarlos tambien

Deja un comentario

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