Archivando y comprimiendo ficheros en Linux

Los términos lossy y lossless se refieren a dos tipos de compresión de datos utilizados para reducir el tamaño de archivos sin (o con poca) pérdida de calidad. Aquí están las diferencias clave:

1. Compresión Lossy (con pérdida)

  • Descripción: Este tipo de compresión elimina algunos datos del archivo original para reducir significativamente su tamaño. Es irreversible; una vez comprimido, no se puede recuperar el archivo original en su totalidad.
  • Uso común: Se usa principalmente en formatos de audio, video e imágenes donde una pequeña pérdida de calidad es aceptable.
  • Ejemplos:
    • JPEG para imágenes: Elimina detalles que el ojo humano no percibe fácilmente.
    • MP3 para audio: Suprime sonidos fuera del rango de audición humana.
    • MPEG para video.
  • Ventaja: Reducción drástica del tamaño de los archivos.
  • Desventaja: La calidad del archivo se reduce, y si se aplica demasiada compresión, la pérdida puede volverse notoria.

2. Compresión Lossless (sin pérdida)

  • Descripción: Este tipo de compresión preserva todos los datos originales, lo que permite que el archivo sea restaurado exactamente a su estado original después de ser descomprimido.
  • Uso común: Se usa cuando es crucial mantener la integridad de los datos, como en imágenes, texto y archivos de software.
  • Ejemplos:
    • PNG para imágenes: Mantiene todos los detalles sin sacrificar calidad.
    • FLAC para audio: Almacena música sin perder calidad.
    • ZIP o RAR para archivos en general.
  • Ventaja: No se pierde ninguna información del archivo original.
  • Desventaja: Los archivos no se comprimen tanto como con la compresión lossy.

En resumen, la compresión lossy es útil cuando el tamaño es más importante que la calidad perfecta, mientras que lossless es preferible cuando la calidad del archivo es crítica.

Compresión en linux

En linux tenemso gzip

gzip nombre_del_archivo

Cuadno veamos el archivo resultante veremos nombre_del_archivo.gz la extension gz lo que hace es indicarnos con que software fue comprimido. Si lo haces con winrar veras _.rar.

Si al intentar descomprimir nos tira error,puede deberse a que si es .rar tenemos que descomprimirlo con rar o cualquiera que nos indique la extension.

Descompresion

Para descomprimir hacemos

gunzip nombre_del_archivo.gz

O tambien

gzip -d nombre_del_archivo.gz

Si quisieramos hacer gzip sobre un directorio, no podremos asi nomas. Tenemos que hacer gzip -r /directorio pero esto no comprimira el directorio en si mismo sino que, a primer nivel zipeara cada una de las carpetas. Esto es asi a proposito, veremos mas adelante como zipear un directorio entero.

Comprimir se refiere a comprimir un solo archivo. Archivar es juntar todos los archivos y directorios en un solo fichero.gz Cuando veas un directorio archivado veras algo como tar.gz.

Bzip2

Esta herramienta es un poco mas lenta pero el resultado de la compresión es aun mayor.

Comprimiendo:

bzip2 nombre_del_archivo

Descomprimiendo:

bunzip2 nombre_del_archivo.bz2

Archivando ficheros: tar

Como dijimos antes la extension de un archivado es .tar.gz

Cuando archivamos lo que hacemos es juntar un conjunto de ficheros en uno solo, es una manera de organizar,pero el ficheros final archivado pesa mas no menos. Entonces lo que se suele hacer es con tar archivamos y luego con gzip comprimimos.

Archivemos:

tar -cf ficheros.tar ./fichero*
  1. -c lo que indica es que queremos crear un nuevo archivo.
  2. -f indica el nombre de ese nuevo archivo.
  3. Luego agregamos los archivos que queremos archivar.

En el ejemplo de arriba ./fichero* indica que queremos archivar todos los archivos que comiencen con con fichero

Desarchivemos

tar -xvf ficheros.tar
  1. x para extraer
  2. v verbose
  3. f indicamos el fichero a desarchivar

Archivando y comprimiendo con tar y gzip

tar -czf ficheros.tar.gz ./fichero*

Descomprimiendo y desarchivando

tar -xf ficheros.tar.gz

Comprimiendo y archivando con tar y bzip2

tar -cjf ficheros.tar.bz2 ./fichero*

Archivar y comprimir con zip

Esta herramienta archiva y comprime ficheros.

Comprimiendo un fichero

zip syslog.zip /var/logs/syslog

Archivando y comprimiendo al mismo tiempo

Por default zip ya lo hace

zip -r miDir.zip mi-dir/

El resultado sera un solo archivo archivado y comprimido

Cuando descomprimamos miDir.zip obtendremos la misma estructura de ficheros que la original.

unzip miDir.zip