Aprender  a Comprimir y  Descomprimir en GNU/Linux.

Jonathan Ruiz Gallardo.

 

  La   mayoría   de   los   usuarios   de   otros   Sistemas   Operativos   están  familiarizados   con   el   concepto   “Archivos   Comprimidos”.   Un   archivo  Comprimido   es  un  archivo  que  contiene   uno  o   varios  archivos   en   forma  comprimida. Los archivos comprimidos son la forma habitual de distribuir  software a través de Internet, normalmente en formato ZIP. Aunque Linux  incluye el comando  UNZIP  para acceder a los contenidos de los archivos  ZIP,   en   el   mundo   UNIX   los   archivos     suelen   usar   el   formato  tar,   y   se  comprimen con el gzip, que comprime archivos individuales.  

  En este trabajo, procederé a explicar los diferentes comandos usados en el  Sistema   Operativo   GNU/Linux   para   comprimir,   descomprimir   y  empaquetar un fichero ó ficheros. Empezaré por una breve explicación de  cada uno de ellos y después indicaré su manera de utilizarlos incluso junto  a otros comandos expuestos aquí.  También incluyo distintas “Notas” personales para explicar varias maneras   de realizar algo, o a tener en cuenta.

Tar:
*Tar nunca comprime*  Este comando (uno de los más potentes y complejos en GNU/Linux, por su  gran   cantidad   de   opciones   que   presenta)   sirve   normalmente   para  empaquetar o desempaquetar ficheros, con los de empaquetar me refiero al  simple hecho de guardar en un único fichero una lista de varios ficheros; o  el   contenido   de   todo   un   directorio   (o   varios   directorios).   Con   tar  preservamos las estructuras de directorios y permisos de los mismos. Para  comprimir usaremos otros comandos.          Si realizamos un “man tar” en la shell de Linux, encontramos esto:

 

Aquí nos explica su utilidad, la manera correcta de usarlo y  las posibles combinaciones que se nos dán.

El formato del comando tar sería: “tar ­[OPCIONES] [Fichero1] [Fichero2] .... [FicheroN]”
Nota: todo los comandos libres de “comillas”.

En las posibles opciones podemos utilizar las siguiente: c: v: Crea un nuevo archivo tar. Modo “verbose”, que esto quiere decir que se nos mostrará por  pantalla los operaciones que va realizando archivo por archivo, si  no se pone esta opción se ejecutara la acción pero en pantalla no 

veremos el proceso. En resumidas cuentas, no hay ningún  problema en no ponerla. x: t:  Extrae los archivos. ( Desempaqueta los ficheros que se  encuentran dentro del archivo .tar     ). Nos muestra el contenido del archivo tar. Cuando deseas saber lo  que contiene ese archivo sin tener que desempaquetándolo se  utiliza esta opción.  Sólo añade ficheros que son más recientes que la copia en el  archivo. Agregar ficheros a un archivo.tar Mantiene los permisos originales de los archivos.  Cuando se usa con la opción ­c, usa el nombre del archivo  especificado para la creación del archivo tar; cuando se usa con  la opción ­x, retira del archivo el archivo específico. Esto sería  para nombrar los tar.  Comprime el archivo tar con gzip. (Hablaré de él después). Comprime el archivo tar con bzip2. (Hablaré de él más adelante). Mantiene los ficheros existentes; no los sobreescribe en el  archivo.

u: r: p: f: 

z: j: k:

Usos del tar
Por ejemplo, Imaginemos que tenemos 4 carpetas(vacías o no) y las  queremos empaquetar en un archivo .tar que contengan éstas. Carpetas:

­­hola0 ­­hola1 ­­hola2 ­­hola3

En la shell pondríamos:

$tar   ­cvf    NombreQueQueramos.tar    hola0  hola1  hola2  hola3 ó también  poniendo al final       hola*   ; utilizando el comodín.

Así de fácil. Para volver a desempaquetarlas:

$tar ­xvf   NOMBREqueLePusimos.tar 

Si lo queremos descomprimir sin tener que estar en ese directorio:

$tar  ­xvf NombreQueLePusimos.tar   /directorio/a/descomprimir/

 Las opciones básicas del comando tar son esas, nada más. Ahora bien, si  queremos  empaquetarlos   y  comprimirlos  para  que  no  ocupen   demasiado  espacio; deberemos aplicar otros comandos junto al tar. Para eso tenemos  disponibles el “Gzip” y “Bzip2”.  Para descomprimirlos usaremos “Gunzip”  y “Bunzip2” respectivamente. 

  
Nota: gzip ó bzip2 sólo comprimen ficheros (no directorios, para eso existe tar). Para comprimir y archivar al  mismo tiempo hay que combinar el tar y el gzip o el bzip2.

  Una   herramienta   especializada   en   la   compresión   y   descompresión.   El  fichero   a   comprimir   se   reemplaza   por   otro   con   la  “extensión.gz”,  manteniéndose   los   mismos   permisos,   propietarios   y   tiempos   de  modificación. 

Gzip:

  Así de fácil. El resultado de este comando es un archivo terminado en la  extensión  .gz  el  cual  generalmente  debería   ser   algo  más pequeño   que  el  original. También hay que saber que el archivo que hicimos ( adios.txt ) ya  no   existirá   más,   ya   que   a   sido   reemplazado   por   “adios.txt.gz”.  Si  hubiéramos comprimido alguna imagen o algún archivo “.mp3” u otro de  este tipo, este no se comprimirá de una forma notoria, ya que estos tipos de  archivos   ya   están   comprimidos   y   si   llegaran   a   comprimirse   la   diferencia  sería mínima. Si lo que deseamos es que “gzip”  utilice el mayor factor de  compresión posible utilizamos la opción “­9” de la siguiente forma:                              $gzip ­9 adios.txt 

  Claro   está,   que   para   notar   alguna   diferencia   de   compresión   debemos  comprimir   a   ser   posibles   directorios   completos   (usando   tar   para   empaquetar), no  simples ficheros de texto :)   Al realizar una compresión con la opción “­9” este comando tomará un  poco   más   de   tiempo   que   el   común   para   comprimir   el   archivo.   Para  solucionar el problema podríamos usar valores más bajos desde la línea de  comandos,   pero   esto   tendrá   como   consecuencia   un   menor   tiempo   de 

compresión, pero a la vez una no tan buena compresión del fichero “adios”.

Si ahora queremos descomprimirlo tenemos la opción de utilizar “gzip ­d”  o   el   comando   “gunzip”.   Este   comando   básicamente   lo   que   hace   es  descomprimir cualquier archivo que tenga una extensión reconocible. Entre  las extensiones reconocibles tenemos:               .gz           ­gz        .z           ­z          .Z                  ­Z    

Algunas opciones que podemos utilizar con “gzip” son las siguientes: “gzip ­[opciones]” d: f: h: l: t: r: v: V:  1 ó 9 Se usar para descomprimir Fuerza   la   compresión   o   descompresión.   No   hace   ninguna  pregunta si desea sobreescribir.  Muestra la pantalla de ayuda. Muestra información sobre los archivos que están comprimidos,  no los descomprime. Chequea la integridad del archivo comprimido. Comprime   recursivamente,   osea   comprime   el   directorio  principal y todos sus subdirectorios.  Muestra   el   nombre   y   el   porcentaje   de   reducción   para   cada  archivo comprimido. Muestra el número de versión, y las opciones de compilación de  este. El   1   aumenta   la   velocidad   pero   disminuye   el   total   de  compresión, así se puede ir subiendo hasta 9 donde la velocidad  de compresión es lenta pero la cantidad de bytes reducidos es  mayor. Se usa para cambiar el sufijo por defecto que es “.gz” .

S:

name:  El   nombre   de   los   archivos   a   comprimir,   se   puede   usar  comodines.
Nota: El comando para descomprimir “gunzip” tiene los mismo argumentos, excepto “­d” y los  

números de 1 a 9 que son propios de “gzip”,

    Bzip2   está   creado   con   una   magnífico   algoritmo   sobre   compresión   de  datos. Generalmente consigue que los ficheros queden en un 60­70% del  tamaño   que   tienen   los   ficheros   comprimidos   con   gzip.   La   sintaxis   es  parecida a la del programa  “gzip”  . Bzip2 esta desarrollado bajo licencia  BSD, gzip GNU. Al igual que “gzip” no comprime directorios, solo ficheros.  Para   comprimir   directorios,   tendremos   antes   que   empaquetarlos   en   un  “archivo.tar” . Por ejemplo, tenemos 4 carpetas, cada una tiene a su vez  ficheros.   Si   queremos   comprimirlos   tendremos   que   empaquetarlos   con  “.tar” y una vez hecho esto comprimirlos con “bzip2”.

Bzip2:

  Lo primero de todo, es empaquetar las carpetas para ello:

Nota: Todos esto se puede realizar con el comando “tar ­z” para comprimir con “gzip”  ó “tar ­j”   para comprimir con “bzip2”; y así no tenerlo que hacer en diferentes pasos. En cambio, para   realizar este ejemplo; lo realizo paso a paso. Quiero decir: primero empaquetaré con tar y   seguidamente comprimiré, y no directamente empaquetar y comprimir en una sola línea con   estos comandos: $tar ­czvf fichero.tar.gz               $tar ­cvfj nombredelfichero.tbz2

 Ahora comprobamos el tamaño que ocupan todas esas carpetas con sus  respectivos ficheros:

Observamos que el “archivo.tar”  ocupa 30720 bytes en total. Si lo comprimiéramos con “gzip”

Ocuparía 16874 bytes.

Ahora si lo hubiéramos comprimido con “bzip2”:

17767 bytes.
Nota: Generalmente bzip2, comprime más los archivos debido al uso de más recursos y tiempo.

RESUMEN:
Ficheros tar Empaquetar: tar ­cvf archivo.tar   /dir/a/comprimir/ Desempaquetar: tar ­xvf archivo.tar Ver contenido tar ­tf archivo.tar  Ficheros gz Comprimir: gzip ­9 fichero Descomprimir: gzip ­d fichero.gz Ficheros bz2 Comprimir: bzip fichero

Descomprimir: bzip2 ­d fichero.bz2 Ficheros tar.gz Comprimir: tar ­czfv archivo.tar.gz ficheros Descomprimir: tar ­xzvf archivo.tar.gz Ver contenido: tar ­tzf archivo.tar.gz Ficheros tar.bz2 Comprimir: tar ­c ficheros | bzip2 >  archivo.tar.bz2 Descomprimir: bzip2 ­dc archivo.tar.bz2 | tar  ­xv Ver contenido: bzip2 ­dc archivo.tar.bz2 | tar ­t Ficheros zip Comprimir: zip archivo.zip ficheros Descomprimir: unzip archivo.zip Ver contenido: unzip ­v archivo.zip

Ficheros lha Comprimir: lha ­a archivo.lha ficheros Descomprimir: lha ­x archivo.lha Ver contenido: lha ­v archivo.lha Ver contenido: lha ­l archivo.lha

Ficheros arj Comprimir: arj a archivo.arj ficheros Descomprimir: unarj archivo.arj

Descomprimir: arj ­x archivo.arj Ver contenido: arj ­v archivo.arj Ver contenido: arj ­l archivo.arj

Ficheros zoo Comprimir: zoo a archivo.zoo ficheros Descomprimir: zoo ­x archivo.zoo Ver contenido: zoo ­L archivo.zoo Ver contenido: zoo ­v archivo.zoo

Rar  Compresor bastante potente y es muy usual encontrar ficheros  comprimidos por Internet. Ficheros rar Comprimir: rar ­a archivo.rar ficheros Descomprimir: rar ­x archivo.rar Ver contenido: rar ­l archivo.rar Ver contenido: rar ­v archivo.rar

Sign up to vote on this title
UsefulNot useful