Compresores desde la Terminal - ubuntuperonista/wiki_tp GitHub Wiki
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 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:
- GNU Zip** es un programa de compresión estándar de baja performance. Sólo es capaz de comprimir __un solo fichero__
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.
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
- bzip2** requiere mayor potencia de cómputo que GNU Zip pero comprime más efectivamente. Sin embargo, está menos extendido en otras plataformas.
Usa **bzip2** para comprimir __solo un fichero__ y generar un archivador .bz2.
bzip2 -k fichero.ext
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
La compresión más extrema (y de menor velocidad) la logra el compresor **xz**.
Con el programa **xz** podrás comprimir __un solo fichero__; esto generará un fichero .xz.
xz -k fichero.ext
Decomprime un fichero.xz con:
xz -d fichero.xz
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).
Archiva todos los ficheros contenidos de un directorio con tar:
tar cvf archivoempaquetado.tar directorio/*
Extrae el contenido de un fichero .tar:
tar xvf archivoempaquetado.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:
Si no lo has hecho, coloca los ficheros que desees en un ~/directorio, y 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".
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
Archiva y comprime el contenido del archivo .tar.bz2 con bzip2:
tar cvjf archivo.tar.bz2 directorio/*
Descomprime y extrae el contenido del fichero tar.bz2:
tar xvjf archivo.tar.bz2
Es similar al tar.gz, pero comprime mejor el archivador gracias al protocolo **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.
En BSD debes descomprimir el .tar.xz con **xz** y desarchiva su contenido:
xz -d archivo.tar.xz ;
tar xf archivo.tar
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.
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
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 ''tar.gz''. Ambos presentan una compresión reducida.
El .rar es un formato de empaquetado y compresión propietario de A. Roshal, muy extendido. Descomprímelo con:
rar -x fichero.rar
Anuncia tu aprendizaje a la comunidad con gab:
gab -m "¡He aprendido a comprimir y descomprimir desde la terminal!"