Compresión y empaquetación en Linux


Compresión y empaquetación en Linux

En el siguiente artículo se describen los diferentes tipos de compresión y empaquetación en Linux con sus respectivos comandos.

Compresión de datos

La compresión de datos es la reducción del volumen de datos tratables para representar una determinada información empleando una menor cantidad de espacio. Al acto de compresión de datos se denomina compresión, y al contrario descompresión.

En Linux existen distintos métodos de compresión los cuales explicaré en detalle en las siguientes líneas.

Compress/Uncompress: El comando compress utiliza el algoritmo Lempel-Ziv. Genera archivos comprimidos terminados en .Z.

Posee los siguientes parámetros:

  • -f: Sobre-escribe sin preguntar.
  • -v: Muestra mayor información del progreso.
  • -c: Manda la salida al estándar output.
  • -V: Opciones de compilación del producto como así también las distintas versiones y sus autores.
  • -r: Este argumento hace que compress sea recursivo.
  • -b: Especifica el límite de bits.
  • name: El nombre de los archivos a comprimir, se puede usar comodines.

Su utilización es la siguiente:

compress -v archivoacomprimir         //Comprime archivo
uncompress archivoadescomprimir       //Descomprime archivo

Zip/unzip: Es compatible con pkzip. Genera archivos comprimidos terminados en .zip.

Posee los siguientes parámetros:

  • -r: Comprime todos los subdirectorios y archivos bajo el directorio donde estamos.
  • -i: Incluye solo los archivos que especificamos
  • -b: Esta opción se utiliza para usar el directorio temporal.
  • -f: Agrega los cambios de nuestros archivos en el zip, basándose en la fecha de creación de estos.
  • -q: Trabaja en modo silencioso, elimina todos los mensajes informativos.
  • -u: Actualiza los archivos que hemos modificado y agrega archivos a nuestro .zip.
  • -x: Excluye uno o varios archivos en nuestro .zip.
  • -f: Fuerza la re-compresión de .Z a .gz, aunque el .gz ya exista.
  • -t: Revisa los archivos nuevos antes de borrar los originales.
  • -v: Muestra el nombre y el porcentaje de reducción para cada archivo comprimido
  • -9: Usa optimal compresion.
  • -P: Usa tuberías para la conversión para reducir el uso de disco.
  • -K: deja un .Z cuando este es mas chico que .gz.

Su utilización es la siguiente:

zip -v archivo.zip archivoacomprimir            //Comprime archivo
unzip archivoadescromprimir.zip                 //Descomprime archivo

Gzip/Gunzip: Usa el algoritmo Lempel-Ziv, más optimizado. Ignora los enlaces simbólicos. Genera archivos comprimidos terminados en .gz.

Posee los siguientes parámetros:

  • -a: Convierte los caracteres CR LF a LF.
  • -c: Deja el archivo origen intacto.
  • -d: Se usa para descomprimir.
  • -f: Fuerza la compresión o descompresión. No pregunta si desea sobre-escribir.
  • -h: Muestra la pantalla de ayuda.
  • -l: Muestra información sobre los archivos que están comprimidos, no los descomprime.
  • -L: Muestra la licencia de gzip.
  • -n: Cuando comprime no graba el nombre original del archivo ni la fecha de este.
  • -N: Cuando comprime graba el nombre original y la fecha de este en el archivo gz.
  • -r: Comprime el directorio principal y todos sus subdirectorios.
  • -t: Chequea la integridad del archivo comprimido.
  • -v: Muestra el nombre y el porcentaje de reducción para cada archivo comprimido.
  • -V: Muestra él número de versión y las opciones de compilación.
  • -1 o -9: Mientras mas alto el número, mejor compresión y más lento.
  • -S: Se usa para cambiar el sufijo por defecto que es .gz
  • name: El nombre de los archivos a comprimir, se puede usar comodines.

Su utilización es la siguiente:

gzip -v archivoacomprimir                 //Comprime archivo
gzip -dv archivoadescomprimir.gz          //Descomprime archivo

Bz2: Comprime/descomprime en formato .bz2.

Posee los siguientes parámetros:

  • -c: Comprimir o descomprimir el salida estándar.
  • -d: Forzar descompresión.
  • -z: El complemento a -d. Forzar descompresión.
  • -t: Realiza la prueba de integridad.
  • -f: Forzar la sobre-escritura del archivo de salida.
  • -k: Mantener el archivo original.
  • -q: Silencio, suprimir los mensajes de alerta no esenciales.
  • -s: Reducir el uso de memoria, para la compresión, descompresión y prueba.
  • -v: el modo verbose muestra la razón de compresión para cada archivo procesado.
  • -V: Muestra la versión del software.
  • -L: Muestra los términos y condiciones de licencia.
  • -1: Realiza una compresión rápida, creando archivos relativamente grandes.
  • -9: Obtener la mejor compresión posible.

Su utilización es la siguiente:

bzip2 -ckv archivoacomprimir > salidadearchivo.bzip2              //Comprime archivo
bzip2 -ckv archivocomprimido.bzip2 > archivosincomprimir          //Descomprime archivo

 

Empaquetado de archivos

Empaquetar es agrupar en un solo archivo varios archivos y/o directorios.

Los siguientes son comandos para empaquetar en Linux con sus respectivos parámetros y ejemplos.

Tar: Empaqueta archivos enviándolos a otro archivo con sufijo .tar o mandarlos a un dispositivo como la diskettera (/dev/fd0).

Posee los siguientes parámetros:

  • -c: copia los archivos.
  • -v: muestra mayor información sobre el progreso del comando.
  • -f: especifica el archivo destino, pudiendo ser éste un archivo de dispositivo.
  • -u: agrega uno o más archivos al archivo tar.
  • -x: extrae uno o más archivos del archivo tar.
  • -t: muestra el contenido del archivo tar.

Su utilización es la siguiente:

tar -cvf directorioempaquetado.tar directorioaempaquetar      //empaqueta directorio
tar -xvf directorioempaquetado.tar                            //desempaqueta directorio
tar -uvf directorioempaquetado.tar archivoaagregar            //agrega archivo
tar -xvf directorioempaquetado.tar archivoaextraer            //extrae archivo especifico
tar -tvf carpetaempaquetada                                   //revisa archivos empaquetados

Cpio: Puede empaquetar archivos y mandarlos al estándar output a un archivo o a un dispositivo.
El comando cpio tiene tres modos de operación:

  1. El modo copia-afuera: Copia archivos hacia un archivo. Este modo funciona leyendo una lista de archivos escribiendo el archivo en la salida estándar.
  2. El modo copia-adentro: Copia archivos desde un archivo. Lee el archivo desde la entrada estándar.
  3. El modo copia-de-paso: Copia archivos desde un árbol de directorio a otro.

Posee los siguientes parámetros:

  • -i: ejecuta modo copia-adentro.
  • -o: ejecuta modo copia-afuera.
  • -p: ejecuta modo copia-de-paso.
  • -v: lista los ficheros procesados.
  • -t: muestra una tabla de contenidos de la entrada.
  • -u: remplaza todos los ficheros sin preguntar.

Su utilización es la siguiente:

ls | cpio -ov > directorio.cpio         //modo copia-afuera
cpio -ivu < directorio.cpio             //modo copia-adentro
cpio -tv < directorio.cpio              //muestra archivos sin desempaquetar