Vamos a ver el grueso de los formatos utilizados para comprimir y descomprimir archivos y/o directorios. Además puntualizaremos algún detalle sobre los comandos que podemos lanzar para realizar ciertas tareas.
GZIP
gzip comprime
fichero a fichero, no empaqueta varios ficheros en uno ni comprime
directorios. Luego comentamos una solución muy utilizada. Los ficheros tienen la extensión
.gz
Como comprimir:
# gzip fichero
Como descomprimir:
# gzip d fichero.gz
Para comprimir
varios ficheros y archivarlos en uno solo como podríamos hacer con los compresores zip o rar hay que combinar tar con gzip. El resultado sería ficheros que tienen la extensión
.tar.gz Veamos un ejemplo:
Como comprimir:
# tar czf archivo.tar.gz ficheros
Como descomprimir:
# tar xvzf archivo.tar.gz
Como ver el contenido:
# tar tzf archivo.tar.gz
BZIP2
bzip2 sólo comprime
fichero a fichero, no comprime varios ficheros en uno ni comprime
directorios. Luego comentamos una solución muy utilizada. Los ficheros tienen la extensión
.bz2
Como comprimir
# bzip2 fichero
Como descomprimir
# bzip2 d fichero.bz2
Para comprimir
varios ficheros y archivarlos en uno solo como podríamos hacer con los compresores zip o rar hay que combinar tar con bzip2. El resultado sería ficheros que tienen la extensión
.tar.bz2
Veamos un ejemplo:
Como comprimir:
# tar c ficheros | bzip2 > archivo.tar.bz2
Como descomprimir:
# bzip2 dc archivo.tar.bz2 | tar xv
Como ver contenido:
# bzip2 dc archivo.tar.bz2 | tar t
ZIP
zip si que realiza compresión y descompresión de
directorios y/o ficheros. En este caso vamos a realizar un apunte importante, ya que vamos a necesitar instalar dos herramientas diferentes, una para comprimir (zip) y la otra para descomprimir (unzip). Los ficheros tienen la extensión .zip
Como comprimir:
# zip archivo.zip ficheros
Un ejemplo es que queremos comprimir todo lo que está en la ruta en el directorio en el que nos encontramos. Por ello podríamos hacer:
# zip fichero *
Aprovechamos para puntualizar que no es necesario especificar la extensión que va a tener el archivo zip, se añade automáticamente. Esto parece que no pero agiliza el tecleado de los comandos. Aburre repetir tanto "zip". De todas formas para diferenciar el archivo zip de otros archivos o modificadores seguiré marcando la extensión.
Para que la compresión se hiciese no solo del directorio en el que estamos sino también de todos los directorios que tenga:
# zip -r fichero.zip *
Como descomprimir:
# unzip archivo.zip
Aprovechamos para añadir algún otro modificador que es interesante. Reconozco que el formato que mas utilizo es .zip, ya que me permite jugar entre entornos windows y linux de una forma muy cómoda. Será la costumbre.
Por ejemplo si queremos hacer un test y obtener un resumen:
# unzip -tq archivo.zip
En caso de que deseemos extraer un fichero que está dentro del archivo zip podemos ejecutar:
# unzip archivo.zip documento.doc
Algo que se hace comunmente es descomprimir pero a una ruta concreta como /tmp, para luego borrarlo por ejemplo:
# unzip archivo.zip -d /tmp
Como ver contenido:
# unzip v archivo.zip
# unzip -l archivo.zip
Si queremos borrar un fichero que esté dentro del archivo zip podemos ejecutar:
# zip archivo.zip -d ficheroaborrar.doc
Existen un montón de opciones mas y variantes. Pero lo dejamos aquí y seguiremos con otros formatos de compresión. Recuerda que puedes lanzar la ayuda:
# zip --help
# man zip
# unzip --help
# man unzip
RAR
rar también realiza compresión y descompresión de
directorios y/o ficheros. En este caso también vamos a utilizar dos herramientas, una para comprimir (rar) y otra para descomprimir (unrar), aunque veremos que se solapan, es algo bastante curioso. Los ficheros tienen la extensión .rar
Como comprimir:
# rar a archivo.rar ficheros
Para borrar archivos en un archivo rar:
# rar d archivo.rar ficheroaborrar.doc
Para recuperar archivos:
# rar r archivo.rar
Como actualiar un fichero existente dentro del archivo comprimido:
# rar u archivo.rar ejemplo.txt
Listar el contenido, para verificar por ejemplo el cambio realizado anteriormente:
# rar l archivo.rar
# rar v archivo.rar
Establecer contraseña en fichero rar. Tras lanzar el comando no solicitará dos veces la contraseña:
# rar a -p archivo.rar
Al intentar descomprimir, nos solicitará la contraseña:
# rar x archivo.rar
Podemos bloquear un archivo para que no se pueda extraer:
# rar k archivo.rar
Como descomprimir:
# unrar e archivo.rar
Para descomprimir en una ruta concreta:
# unrar e archivo.rar /tmp
Para descomprimir en la estructura original:
# unrar x archivo.rar
Si lo que queremos es listar previamente el contenido:
# unrar l archivo.rar
Para realizar un test del fichero:
# unrar t archivo.rar
Como siempre, podemos utilizar la ayuda de las herramientas para ver la cantidad de opciones que poseen. En este caso no podemos hacer un rar --help o unrar -help
# man rar
# man unrar
OTROS FORMATOS DE COMPRESIÓN
Ficheros
.lha
Para comprimir:
# lha a archivo.lha ficheros
Para descomprimir:
# lha x archivo.lha
Para ver el contenido:
# lha v archivo.lha
# lha l archivo.lha
Ficheros
.arj
Para comprimir:
# arj a archivo.arj ficheros
Para descomprimir:
# unarj archivo.arj
# arj x archivo.arj
Para ver el contenido:
# arj v archivo.arj
# arj l archivo.arj
Ficheros
.zoo
Para comprimir:
# zoo a archivo.zoo ficheros
Para descomprimir:
# zoo x archivo.zoo
Para ver el contenido:
# zoo L archivo.zoo
# zoo v archivo.zoo
No tengo referencia de los links de los que he ido extrayendo o consultando esta información, la verdad es que de vez en cuando buscaba en una u otra web y me decidí a resumir todo en un único sitio para consultarlo rápidamente en caso de necesidad.
Todos estos comandos son muy útiles para realizar volcados de un servidor a otro, a una memoria USB o para realizar copias de seguridad por ejemplo. Intentaré en alguna otra entrada poner ejemplos de scripts con los que automatizo ciertas tareas de administración.
SaluDOS