cabecera d-xl

La Shell de Linux


EMPAQUETANDO Y COMPRIMIENDO

Es muy común cuando navegamos en Internet descargar archivos zip, tar, o tar.gz, bzip, bz2 ... Pues bien con la shell puedes desempaquetar y descomprimir todos esos archivos.

EL EMPAQUETADOR UNIVERSAL - TAR

El comando tar es utilizado normalmente para empaquetar o desempaquetar ficheros, empaquetar significa guardar en un único fichero una lista de varios ficheros, o el contenido de todo un directorio (o varios directorios). El formato del comando tar es:

tar [opciones] [fichero1][fichero2]...[ficheroN]

Donde es la lista de opciones y hasta es la lista de ficheros a añadir o extraer del archivo.

En las opciones de tar hay algunas que son importantes para su uso :

c Crea un nuevo archivo tar.
v Modo verbose, quiere decir que mostrará por pantalla las operaciones que va realizando archivo por archivo, si no se pone esta opción ejecutará la acción pero en pantalla no veremos el proceso.
x Extrae los archivos (Descomprime los ficheros que se encuentran dentro del archivo tar).
t Nos muestra el contenido del archivo tar. Esto es cuando tu deseas saber que es lo que contiene ese archivo sin necesidad de desempaquetarlo.
p Mantiene los permisos originales de los archivos.
f Cuando se usa con la opción -c, usa el nombre del archivo especificado para la creación del archivo tar; cuando se usa con la opción -x, retira del archivo el archivo específico.
j Comprime el archivo tar con bzip2.
z Comprime el archivo tar con gzip.

Aquí algunos ejemplos:

$ tar cvf archivo.tar /etc

Empaquetará todos los ficheros de /etc en el fichero archivo.tar c le dice a tar que cree un nuevo fichero de archivo. La opción v fuerza a tar en el modo verbose, (osea mostrando en pantalla el progreso de la tarea que realiza, en este caso los nombres de los ficheros según se archivan).

La opción f le dice a tar que el siguiente argumento archivo.tar es el nombre del archivo a crear. El resto de los argumentos de tar son los nombres de ficheros y directorios a añadir al archivo.

$ tar xvf archivo.tar

Extraerá el fichero archivo.tar en el directorio actual. Una de las ventajas que nos ofrece tar es que respeta la estructura de directorio existente en el momento de empaquetar, de forma que al desempaquetar se reproducirá como estaba originalmente.

$ tar czvf archivo.tar.gz /etc

Si queremos descomprimir igual que en la linea que desempaquetamos, solo que ahora cambiamos la c por la x de extracción:

$tar xzvf archivo.tar.gz

Hay otro modo de compresión que es el formato bz2. Para comprimir y descomprimir es el mismo procedimiento que con gz, la única diferencia es que ya no va la letra z, sino la j.

Ejemplo - Para poder empaquetar y comprimir se usa el siguiente comando:

$ tar cjvf archivo.tar.bz2 /etc

Si queremos descomprimir , las opciones son muy similares a la orden anterior, solo que ahora le cambiamos la c por la x de extracción:

$tar xjvf archivo.tar.gz

COMPRIMIENDO: GZIP

Hay una herramienta especializada en la compresión y descompresión, es la herramienta gzip. Normalmente, el fichero a comprimir se reemplaza por otro con la extensión.gz, manteniéndose los mismos permisos, propietarios y tiempos de modificación. La cantidad de compresión obtenida depende de varios factores, típicamente, texto o código fuente se reduce en un porcentaje del 60 al 70%. Un fichero ya comprimido, como la mayoría de archivos gráficos (gif, jpg), difícilmente reducirán su tamaño.

$ gzip -9 archivo.tar

El resultado será archivo.tar.gz.

Para comprimir, puedes poner gzip -d y el nombre del archivo gz a descomprimir

$ gzip -d archivo.tar.gz

En esta ocasión archivo.tar.gz será descomprimido y reemplazado por archivo.tar. Un equivalente a gzip -d es el comando gunzip :

$gunzip archivo.tar.gz

Ojo que puedes comprimir y descomprimir con esta herramienta , asi como con la poderosa herramienta tar, ambas tienen las mismas extensiones y son compatibles entre ambas. por ejemplo puedes comprimirlo con tar y descomprimirlo con gzip y viceversa. La diferencia esta en que tar también hace la función de empaquetado.

EXTENSIONES ZIP

Comprimir y descomprimir los archivos zip, también es sencillo:

$zip -r documento.zip carpeta_o_archivo_a_comprimir

El parámetro r indica al comando zip que debe hacer una compresión de manera recursiva, en el caso de comprimir un directorio , comprime todo lo que hay en él.

unzip documento.zip

Esta línea descomprime el fichero zip , y deja todos los archivos contenidos en ella en la carpeta donde te encuentres en ese momento.

Hasta aquí lo relacionado con la compresión y empaquetamiento, ahora podrás hacer tus backups (copias de seguridad fácilmente), comprimir tus directorios y descomprimir toda la información que requieras con esta consola de comandos que se cada vez se te hace mas familiar :)


Contacto