Comprimir y descomprimir desde la terminal

Cada fichero ocupa espacio en un medio de almacenamiento.

Existen programas compresores que - por medio de distintos algoritmos de compresion someten el contenido de un fichero a un de analisis computacional y eliminacion de redundancias, con el fin de reducir el espacio que este ocupaba.

Esto es especialmente util para achicar el fichero para su transmision o conservacion definitiva.

Los sistemas similares a Unix cuentan con varios de estos compresores, pues existen varios formatos comprimidos. Podras manejarlos desde la consola, operando casi siempre con opciiones muy similar: conservan una copia del fichero original y una comprimida con -k y descomprir con -d.

Los formatos comprimidos mas comunes son:

.gz

GNU Zip es un programa de compresion estandar de baja performance. Solo es capaz de comprimir un solo fichero

Compresion de .gz

Usa el programa gzip para comprimir fichero.ext. Esto creara una copia comprimida con extension .gz:

gzip -k fichero.ext

El sufijo -k indica conservar el fichero.ext original. Si lo omites, gzip comprime el fichero en fichero.ext.gz.

Descompresion de .gz

Usa gzip con el indicador -d para descomprimir un fichero .gz:

gzip -d fichero.gz

Si deseas leer el contenido de un fichero de texto comprimido en un .gz, usa zcat:

zcat fichero.gz | less

.bz2

bzip2 requiere mayor potencia de computo que GNU Zip pero comprime mas efectivamente. Sin embargo, esta menos extendido en otras plataformas.

Compresion de .bz2

Usa bzip2 para comprimir solo un fichero y generar un archivador .bz2.

bzip2 -k fichero.ext

Descompresion de .bz2

Usa bzip2 con el sufijo -d para descomprime el fichero .bz2.

bzip2 -d fichero.bz2

Si solo deseas leer el contenido de un fichero de texto comprimido con .bz2, usa bzcat:

bzcat fichero.bz2 | less

.xz

La compresion mas extrema (y de menor velocidad) la logra el compresor xz.

Compresion de .xz

Con el programa xz podras comprimir un solo fichero; esto generara un fichero .xz.

xz -k fichero.ext

Descompresion de .xz

Decomprime un fichero.xz con:

xz -d fichero.xz

.tar

El programa tar se usa para crear un archivador .tar, un fichero concebido para contener varios ficheros e incluso directorios, encadenandolos binariamente uno tras otro.

Originalmente estaba pensado para almacenar este fichero archivado en un medio de almacenamiento secuencial, como un carrete de cinta magnetica (en una era donde la cinta era el principal medio de almacenamiento de masa).

Archivar en .tar

Archiva todos los ficheros contenidos de un directorio con tar:

tar cvf archivoempaquetado.tar directorio/*

Desarchivar un .tar

Extrae el contenido de un fichero .tar:

tar xvf archivoempaquetado.tar

Comprimir archivadores .tar.gz

Si bien es posible crear un archivador .tar y comprimirlo en dos pasos, tar contempla la compresion y descompresion directa del archivador en un unico paso:

Comprimir un archivador .tar.gz

Si no lo has hecho, coloca los ficheros que desees en un ~/directorio, y archivalo en un fichero .tar, y comprimelo con gzip.

Archiva varios ficheros o directorios y comprimelos con gzip, creando un archivo tar.gz.

tar czvf archivocomprimido.tar.gz ~/directorio/*

Un archivo tar.gz que contiene un arbol de directorios con codigo fuente de un programa - un uso comun de este tipo de ficheros - recibe el el apodo de "tarball".

Descomprimir un archivador .tar.gz

Descomprime con gzip y extrae el contenido del archivador comprimido .tar.gz (en ocasiones puede aparecer como .tgz en Windows):

tar xvzf archivo.tar.gz

Ver tambien: gpgtar

.tar.bz2

Comprimir el archivador .tar.bz2

Archiva y comprime el contenido del archivo .tar.bz2 con bzip2:

tar cvjf archivo.tar.bz2 directorio/*

Descomprimir el archivador .tar.bz2

Descomprime y extrae el contenido del fichero tar.bz2:

tar xvjf archivo.tar.bz2

.tar.xz

Es similar al tar.gz, pero comprime mejor el archivador gracias al protocolo xz:

Comprime el archivador .tar.xz

En BSD debes crear primero el tar y luego comprimirlo con xz para crear el archivo.tar.xz:

tar cvf archivo.tar directorio/* ;
xz archivo.tar

tar.xz se suele especificar para empaquetado de binarios de software.

Descomprime el archivador .tar.xz

En BSD debes descomprimir el .tar.xz con xz y desarchiva su contenido:

xz -d archivo.tar.xz ;
tar xf archivo.tar

.zip

Los archivos comprimidos .zip/.ZIP fueron desarrollados por Phil Katz, y extremadamente populares en multiples plataformas y sistemas operativos. Usalos si debes transferir ficheros comprimidos a otras plataformas como Windows.

Comprimir .zip

Comprime varios ficheros o directorios y generar un archivo.zip:

zip fichero_comprimido.zip fichero1 fichero2 fichero3

...o puedes usar la opcion (-r) para comprimir recursivamente los contenidos de directorio/s, con los ficheros y subdirectorios que contenga/n:

zip -r archivo_comprimido.zip directorio

Descomprimir .zip

Descomprime un archivo comprimido .zip con gzip -d:

unzip archivo.zip

A pesar de que el protocolo PKware ZIP funcionan en la mayoria de las plataformas, no contempla ciertos atributos especiales utilizados en sistemas tipo UNIX (posesion de los archivos, ciertos permisos, etc). Por tal motivo el metodo recomendado en UNIX es usar tar.gz. Ambos presentan una compresion reducida.

rar

El .rar es un formato de empaquetado y compresion propietario de A. Roshal, muy extendido. Descomprimelo con:

rar -x fichero.rar

Conclusion

Anuncia tu aprendizaje a la comunidad con gab:

gab -m "¡He aprendido a comprimir y descomprimir desde la terminal!"