viernes, 26 de mayo de 2017

16. Archivado y compresión en Linux

El archivado de archivos se utiliza cuando uno o más archivos necesitan ser transmitidos o almacenados de la manera más eficiente posible. Hay dos aspectos a esto:
  • Archivando: Combinando múltiples archivos en uno, lo que elimina la sobrecarga en archivos individuales y facilita la transmisión
  • Comprimir: Reducir los archivos eliminando información redundante

Puede archivar varios archivos en un único archivo y comprimirlo, o puede comprimir un archivo individual. El primero se conoce como archivo, mientras que el último se llama compresión. Cuando usted toma un archivo, descomprímalo y extrae uno o más archivos, usted lo está des-archivando.

A pesar de que el espacio en disco es relativamente barato, el archivo y la compresión aún tienen valor:
  • Si desea hacer un gran número de archivos disponibles, como el código fuente de una aplicación o una colección de documentos, es más fácil para las personas descargar un archivo comprimido que descargar archivos individuales.
  • Los archivos de registro tienen el hábito de llenar los discos, por lo que es útil dividirlos por fecha y comprimir versiones anteriores.
  • Cuando realiza una copia de seguridad de los directorios, es más fácil guardarlos todos en un archivo que hacerlo en cada archivo.
  • Algunos dispositivos de transmisión, como cintas, funcionan mejor si envía un flujo de datos en lugar de archivos individuales.
  • A menudo puede ser más rápido comprimir un archivo antes de enviarlo a una unidad de cinta o sobre una red más lenta y descomprimirlo en el otro extremo de lo que sería para enviarlo sin comprimir.

Comprimir archivos

La compresión de los archivos los hace más pequeños eliminando la duplicación de un archivo y almacenándola de tal manera que se pueda restaurar el archivo. El algoritmo de compresión es un procedimiento que la computadora hace para codificar el archivo original, y como resultado lo hace más pequeño. Los científicos informáticos investigan estos algoritmos y proponen mejores que pueden trabajar más rápido o hacer que el archivo de entrada sea más pequeño.

Tipos de compresión

  • Con pérdidas: No se quita ninguna información del archivo. Comprimir un archivo y descomprimirlo deja algo idéntico al original.
  • Sin pérdidas: La información puede quitarse del archivo a medida que se comprime, de modo que la descompresión de un archivo dará lugar a un archivo que es ligeramente diferente del original. Por ejemplo, una imagen con dos tonos sutilmente diferentes de verde podría hacerse más pequeña tratando esos dos tonos como iguales. A menudo, el ojo no puede escoger la diferencia de todos modos.
Generalmente los ojos y los oídos humanos no notan imperfecciones leves en cuadros y el audio, especialmente como se exhiben en un monitor o se tocan sobre los altavoces. La compresión con pérdidas a menudo beneficia a los medios porque resulta en tamaños de archivo más pequeños y la gente no puede distinguir entre el original y la versión con los datos modificados. Para cosas que deben permanecer intactas, como documentos, registros y software, necesita compresión sin pérdidas.

La mayoría de los formatos de imagen, como GIF, PNG y JPEG, implementan algún tipo de compresión con pérdidas. En general, puede decidir cuánta calidad desea conservar. Una calidad inferior resulta en un archivo más pequeño, pero después de la descompresión puede notar artefactos como bordes ásperos o decoloraciones. La alta calidad se parecerá mucho a la imagen original, pero el tamaño del archivo será más cercano al original.

Linux proporciona varias herramientas para comprimir archivos, el más común es gzip. Aquí mostramos un archivo de registro antes y después de la compresión.

bob:tmp $ ls -l access_log*
-rw-r--r-- 1 sean sean 372063 Oct 11 21:24 access_log
bob:tmp $ gzip access_log
bob:tmp $ ls -l access_log*
-rw-r--r-- 1 sean sean 26080 Oct 11 21:24 access_log.gz
Gzip le dará esta información si lo pide, usando el parámetro -l, como se muestra aquí:

bob:tmp $ gzip -l access_log.gz
      compressed     uncompressed  ratio uncompressed_name
           26080           372063  93.0% access_log
Aquí, puede ver que la relación de compresión se da como 93%, que es la inversa de la relación 14:1, es decir 13/14.

Lo contrario del comando gzip es gunzip. Alternativamente, gzip -d hace lo mismo.
Gzip también puede actuar como un filtro que significa que no lee ni escribe nada al disco, sino que recibe datos a través de un canal de entrada y lo escribe a un canal de salida.

Hay otro par de comandos que operan virtualmente idénticamente a gzip y gunzip. Estos son bzip2 y bunzip2. Las utilidades de bzip utilizan un algoritmo de compresión diferente que puede comprimir archivos más pequeños que gzip a expensas de más tiempo de CPU. Puede reconocer estos archivos porque tienen una extensión .bz o bz2 en lugar de .gz.

Bibliografía

NDG Linux Essentials - Chapter 7 - Archiving and Compression

No hay comentarios.:

Publicar un comentario