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…
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.
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)
Que dicen de formatos mas populares pero multiplataforma como .7z? Deberian nombrarlos tambien
Hola Jose, lo que sucede con los archivos tar.gz, es que usas otro comando que es tar y en este caso el comando tar por si solo no comprime (ni descomprime) si no que se usa para agrupar (o des-agrupar) varios archivos en uno solo, este tiene integración con el comando gzip y bzip2 con los cuales puede comprimir y descomprimir.
Tienes toda la razón Ernesto, para un formato libre 7z que se esta consiguiendo hacer hueco en Windows, sustituyendo a zip y rar, y no lo mencionan ?
google.com
En pleno siglo 21 y todavia usando comandos para comprimir un simple archivo? Este post da pena
Bien dicho, no le veo sentido utilizar un comando para comprimir un simple archivo
Quizás sería interesante también