Skip to content
On this page

Empaquetado y Compresi贸n

Una de las tareas m谩s importantes de un administrador de sistemas es mantener los datos seguros. Una forma de lograr esto es realizando regularmente un respaldo (backup) de los archivos del sistema. Incluso sin ser el administrador es deseable mantener copias seguras de algunos archivos importantes replicadas en otro dispositivo.

Algunas herramientas 煤tiles para llevar a cabo esta tarea son:

Adem谩s de las ya antes mencionadas sftp, scp.

Comprpesi贸n de archivos

Desde los inicios de la computaci贸n se ha mantenido el desaf铆o de almacenar informaci贸n en la menor cantidad de espacio posible, m谩s all谩 de que se trate de especio en memoria, espacio en almacenamiento masivo o ancho de banda, eso di贸 inicio a las t茅cnicas de compresi贸n de datos.

La compresi贸n de datos es el proceso de remover redundancia de los datos.

Ejemplo

Considerando como ejemplo una imagen completamente negra, con las dimenciones de 100px x 100px, en terminos de almacenamiento ,(asumiendo 24bits por pixel ~ 3 bytes), estariamos hablando de 30.000 bytes de almacenamiento.

Al ser toda la imagen de un 煤nico color se trata de un archivo completo de informaci贸n redundante, por decirlo de alg煤n modo tenemos un bloque de 10.000 pixeles negros. En lugar de almacenar los datos de ese modo podemos comprimirlos indicando con el n煤mero 10.000 que a continuaci贸n el valor del color (0 en este caso). Esa t茅cnica es denominada run-length encoding, una de las m谩s rudimentarias formas de encriptaci贸n, hoy en d铆a existen mucho m谩s avanzados mecanismos, pero la idea es la misma, minimizar lo m谩ximo posible la redundancia de datos.

Categor铆as

Sin p茅rdida | Lossless

Este tipo de compresi贸n preserva toda la informaci贸n contenida en el archivo original, esto quiere decir que cuando un archivo es restablecido a su estado original, el archivo es exactamente igual al original.

Con p茅rdida | Lossy

Por otro lado existen t茅cnicas donde se remueven datos al momento de la compresi贸n para lograr una mayor reducci贸n del tama帽o final, al ser restablecido el archivo no es exactamente igual al original, sino que bastante similar. Ejemplos de este tipo de compresi贸n son JPEG y MP3.

gzip

s
gzip ruta/archivo/a/comprimir

El programa gzip es utilizado para comprimir uno o m谩s archivos. Cuando es ejecutado reemplaza el original con una versi贸n comprimida. Se cuenta a su vez con la contraparte gunzip, el cual puede ser utilizado para volver a los archivos a su estado original.

sh
ls -l /etc > foo.txt
ls -l foo.*
gzip foo.txt
ls -l foo.*
gunzip foo.txt
ls -l foo.*

En el ejemplo anterior se crea un archivo foo.txt a partir del listado del directorio /etc, luego se reemplaza mediante gzip por una versi贸n comprimida, para finalmente volver a ser restablecido.

Cabe destacar que tanto el archivo original como su versi贸n comprimida mantienen los mismos permisos y timestamp.

Opciones de gzip

opci贸nopci贸n largadescripci贸n
-c--stdout --to-stdout-----------
-d--decompress-----------
-f--force-----------
-h--help-----------
-l--list-----------
-r--recursive-----------
-t--testTestea la integridad de un archivo comprimido.
-v--verbose-----------
-1--fast-----------
-6de 1 a 9, 6 default-----------
-9--best-----------

Este comando suele ser utilizado junto con el comando tar.

bzip2

Programa similar a gzip pero que utiliza un algoritmo diferente de compresi贸n, el cual brinda mejores niveles de compresi贸n, pero con el costo de mayor tiempo de procesamiento.

Su funcionamiento es similar a gzip, al comprimir un archivo a este se le asigna la extensi贸n bzip2. Las opciones que incluye son las mismas que gzip a excepci贸n de -r.

Programas que incluye:

  • bunzip2 (descomprime bzip2 -d)
  • bzcat (descomprime hacia stdout, la salida estandar bzip2 -c)
  • bzip2recover (Extrae bloques de archivos bz2 da帽ados)

XZ Utils

XZ Utils es un software libre para la compresi贸n de datos con un gran nivel de compresi贸n. La utilidad XZ fue escrita para sistemas tipo POSIX, pero tambi茅n funciona en sistemas no POSIX.

Por lo general, XZ crea archivos 30 % menores que los producidos por gzip y 15 % menores que con bzip2.

XZ Utils consiste en varios componentes:

  • liblzma es una librer铆a de compresi贸n con una API similar a la de zlib.
  • xz es una herramienta de linea de comando con una sintaxis similar a la de gzip.
  • xzdec herramienta de descompresi贸n menor a la herramienta xz completa.
  • Serie de scripts (xzgrep, xzdiff, etc.) adaptados de gzip para facilitar la visualizaci贸n, busqueda y comparaci贸n de archivos comprimidos.
  • Emulaci贸n de las herramientas de la cli de LZMA.

Archivado

Una tarea frecuente al administrar datos en conjunto con la compresi贸n es la de archivar, proceso por el cual se almacenan varios archivos como uno 煤nico. Esto se realiza por lo general como parte de un sistema de backup o para mover informaci贸n desde un sistema activo hacia alg煤n almacenamiento de largo plazo.

tar

En el mundo de los sistemas tipo UNIX el programa tar es la cl谩sica herramienta con esta finalidad.

La extensi贸n que suele utilizar este tipo de archivos es .tar cuando se almacena la informaci贸n sin procesar, o .tgz cuando se utiliz贸 un proceso de compresi贸n mediante gzip.

tar [OPTION...] [FILE]...

Comando utilizado para empaquetar archivos (tar alias para tape archive)

  • c opci贸n para crear el archivo tar.
  • v activa el modo verbose, documenta el empaquetado
  • f [nombreArchivo] le otorga un nombre al archivo empaquetado
  • z realiza el comando tar y el comando gzip a la vez
  • x extrae los archivos.
  • t lista el contenido de un archivo tar.
  • r Agrega contenido al archivo.

Ejemplo:

comprimir el directorio dir

s
tar -czvf respaldo_dir.tar dir
Compresion

descomprimir

s
tar -xzvf respaldo_dir.tar dir

zip

El programa zip es tanto una herramienta de compresi贸n como un archivador, y el formato generado es com煤n en el entorno Windows. En el mundo UNIX el programa de compresi贸n predominante es gzip, seguido por bzip2, de todos modos en casos donde se deba interactuar con un sistema Windows este programa puede ser de ayuda.

La sintaxis b谩sica es:

zip opciones zipFile file...

Comprimir todo el contenido de la carpeta myFolder.

s
zip -r zipFile.zip myFolder

En caso de omitir la opci贸n -r estar铆amos incluyendo el directorio, pero nada de su contenido.

La extensi贸n .zip es agregada de forma autom谩tica, pero se puede inclu铆r para mejorar la claridad de la ejecuci贸n.

En zip si un archivo especificado existe, este es actualizado en lugar de ser reemplazado, pero los nuevos archivos son agregados, mientras que los existentes son reemplazados.

Listar archivos:

unzip -l archivo.zip directorio/a/extraer/txt

Extraer archivo en particular:

unzip -l archivo.zip directorio/a/extraer/txt

s
unzip zipFile.zip -d myNewFolder

Fuentes y enlaces