====== 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 compresión// someten el contenido de un fichero a un de análisis computacional y eliminación de redundancias, con el fin de reducir el espacio que este ocupaba. Esto es especialmente útil para achicar el fichero para su transmisión o conservación definitiva. Los sistemas similares a [[Unix]] cuentan con varios de estos compresores, pues existen varios formatos comprimidos. Podrás manejarlos desde la [[terminal_de_computadora|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 más comunes son: ====.gz==== **GNU Zip** es un programa de compresión estándar de baja performance. Sólo es capaz de comprimir __un solo fichero__ ==Compresión de .gz == Usa el programa **gzip** para comprimir ''fichero.ext''. Esto creará una copia comprimida con extensión ''.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''. == Descompresión 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 cómputo que GNU Zip pero comprime más efectivamente. Sin embargo, está menos extendido en otras plataformas. ==Compresión de .bz2== Usa **bzip2** para comprimir __solo un fichero__ y generar un archivador ''.bz2''. bzip2 -k fichero.ext ==Descompresión de .bz2== Usa **bzip2** con el sufijo ''-d'' para descomprime el fichero ''.bz2''. bzip2 -d fichero.bz2 Si sólo deseas leer el contenido de un fichero de texto comprimido con ''.bz2'', usa **bzcat**: bzcat fichero.bz2 | less ====.xz==== La compresión más extrema (y de menor velocidad) la logra el compresor **xz**. ==Compresión de .xz== Con el programa **xz** podrás comprimir __un solo fichero__; esto generará un fichero ''.xz''. xz -k fichero.ext ==Descompresión 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, encadenándolos binariamente uno tras otro. >Originalmente estaba pensado para almacenar este fichero archivado en un medio de almacenamiento secuencial, como un carrete de cinta magnética (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==== Si bien es posible crear un archivador ''.tar'' y comprimirlo en dos pasos, **tar** contempla la compresión y descompresión directa del archivador en un único paso: ===.tar.gz=== ==Comprimir un archivador .tar.gz== Si no lo has hecho, coloca los ficheros que desees en un ''~/directorio'', y [[#archivar en tar|archívalo en un fichero ''.tar'']], y comprímelo con **gzip**. Archiva __varios ficheros o directorios__ y comprímelos con gzip, creando un archivo ''tar.gz''. tar czvf archivocomprimido.tar.gz ~/directorio/* >Un archivo ''tar.gz'' que contiene un árbol de directorios con código fuente de un programa - un uso común 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 también__: [[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 múltiples plataformas y sistemas operativos. Úsalos 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 opción (''-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 mayoría de las plataformas, no contempla ciertos atributos especiales utilizados en sistemas tipo [[UNIX]] (posesión de los archivos, ciertos permisos, etc). Por tal motivo el método recomendado en UNIX es usar [[#comprimir tar.gz|''tar.gz'']]. Ambos presentan una compresión reducida. ==== rar ==== El ''.rar'' es un formato de empaquetado y compresión propietario de A. Roshal, muy extendido. Descomprímelo con: rar -x fichero.rar