Tar y gzip son dos herramientas que se utilizan en los sistemas operativos basados en Unix, como GNU / Linux, para "empaquetar" y comprimir archivos, respectivamente. Si bien es perfectamente posible usar cualquiera de los programas individualmente, usar ambos al mismo tiempo es muy común y útil.
Comando TAR
La copia de seguridad de archivos es una vieja necesidad. Hay varias formas de hacerlo, pero en los sistemas operativos basados en Unix, una de las formas más tradicionales es usar la herramienta Tar, que significa Tape Archive. Lo que hace Tar es muy sencillo de entender: "empaqueta" varios archivos en uno, es decir, hace que un solo archivo contenga varios otros. Así, es posible, almacenar copias de documentos en la carpeta de un usuario en un solo archivo.
El archivo resultante de un empaquetado realizado con Tar tiene, como era de esperar, la extensión .tar, aunque su uso no es obligatorio (pero sí se recomienda para fines organizativos). Cuando sea necesario extraer el contenido existente dentro de un archivo .tar, por supuesto, simplemente ejecuta el programa Tar. Los procedimientos de empaquetado y extracción de archivos se realizan mediante comandos y parámetros insertados en terminales (shell). Cuando un usuario domina estas instrucciones, puede realizar dichas tareas de manera sencilla. Esto se debe principalmente al hecho de que Tar mantiene las propiedades del archivo y las estructuras de directorio originales, lo que facilita la búsqueda y el uso de cada elemento después de la extracción.
La sintaxis de Tar es la siguiente:
tar [parámetros] [tar_filename] [source_files]
En los parámetros, es posible utilizar varias opciones. Estos son los principales:
- -c - crea un nuevo archivo tar;
- -t - muestra el contenido de un archivo tar;
- -p - conserva los permisos originales de los archivos;
- -r - agrega archivos a un archivo tar existente;
- -f - le permite especificar el archivo tar que se utilizará;
- -v - muestra detalles de la operación;
- -w - solicita confirmación antes de cada acción en el comando;
- -x: extrae archivos de un archivo tar existente;
- -z - comprime el archivo tar resultante con gzip (visto más adelante);
- -C - especifica el directorio de los archivos que se almacenarán.
El campo file_name_tar especifica el nombre que tendrá el archivo .tar, y el campo source_files define el directorio o los archivos que se convertirán en .tar. Veamos algunos ejemplos para facilitar la comprensión:
tar -cf fichero1.tar fichero2.txt fichero3.txt
El comando anterior crea el archivo fichero1.tar, que contiene los archivos fichero2.txt y fichero3.txt. Aquí, habrás notado que es posible combinar parámetros. En este ejemplo, esto sucedió con -cy -f. En el siguiente ejemplo, el directorio de hardware tiene todo su contenido comprimido en el archivo fichero1.tar, pero los detalles se muestran gracias a la opción -v:
tar -cvf fichero1.tar hardware
Usando TAR
El siguiente ejemplo enumera el contenido del archivo fichero1.tar:
tar -tf fichero1.tar
A su vez, el siguiente comando hace que se extraigan todos los archivos fichero1.tar:
tar -xvf fichero1.tar
Extrayendo archivos de un .tar
En el siguiente comando, solo se extrae el archivo fichero2.txt:
tar -xvf fichero1.tar fichero2.txt
Una cosa interesante es que, si la opción -v se usa dos veces, aparecen detalles como permisos y fecha del archivo(s):
tar -xvvf fichero1.tar fichero2.txt
Comando gzip
La herramienta Tar, por sí sola, solo sirve para unir varios archivos en uno. Sin embargo, el programa no puede reducir el tamaño del archivo resultante, es decir, comprimirlo. Aquí es donde entra en juego el gzip (GNU zip) u otro compactador de su elección. Si se usa solo, gzip usa la siguiente sintaxis:
gzip [parámetros] [nombre de archivo]
Entre los parámetros disponibles, se encuentran:
- -c - extrae un archivo a la salida estándar;
- -d - descomprime un archivo comprimido;
- -l - lista el contenido de un archivo comprimido;
- -v: muestra detalles sobre el procedimiento;
- -r - carpetas compactas;
- -t prueba la integridad de un archivo comprimido.
También en lo que respecta a las opciones de los parámetros, es posible utilizar una numeración del 1 al 9 para indicar el nivel de compresión. Cuanto mayor sea el número, mayor será la compresión del archivo.
A continuación, se muestran algunos ejemplos para facilitar la comprensión del comando gzip:
gzip fichero1.odt
El comando anterior comprime el archivo fichero1.odt. Ten en cuenta que los archivos comprimidos con gzip reciben la extensión .gz.
gzip -d fichero1.odt.gz
El comando anterior descomprime el archivo fichero1.odt.gz.
gzip -1 colorado.ods
El procedimiento anterior hace que el archivo colorado.ods se comprima considerando el nivel más bajo de comprensión.
Usando Tar y gzip
El uso conjunto de los comandos Tar y gzip es un buen ejemplo de la coherencia de la frase "la unión hace la fuerza". A menudo, es necesario unir archivos y, al mismo tiempo, hacer que el archivo resultante, además de contener todos los demás, también esté comprimido. Aquí es donde entra en juego la capacidad de unir archivos Tar con la capacidad de compresión gzip. Para usar ambos al mismo tiempo, el procedimiento es muy simple: simplemente aplica el comando tar con el parámetro -z. El archivo resultante de este procedimiento recibirá la extensión .tar.gz.
En este punto, vemos un comando muy utilizado para instalar programas y bibliotecas:
tar -zxvf nombrearchivo.tar.gz
Si estás leyendo este artículo desde el principio, seguro que ya sabes lo que hace el comando anterior, aun así te explicamos para evitar dudas: se debe usar la letra z porque el archivo fue comprimido con gzip; la letra x indica que el comando debe extraer el archivo (por lo tanto, dicha instrucción sirve para extraer y descomprimir el archivo tar.gz); la letra v muestra los detalles del procedimiento; finalmente, la letra f especifica qué archivo se utilizará en esta actividad.
Supongamos, que quieres dejar los archivos marvin.png, zaphod.txt y trillian.odt en un solo paquete. El archivo resultante se llamará guia.tar.gz. Aquí está el comando que usaremos para este ejemplo:
tar -zcvf guia.tar.gz marvin.png zaphod.txt trillian.odt
Usando Tar y gzip
Ten en cuenta que el comando es muy similar al procedimiento de desempaquetado en el ejemplo anterior, con la diferencia de que se usó el parámetro c en lugar de x, porque el objetivo aquí es crear un nuevo archivo y no extraer uno existente. Para extraer el contenido de este archivo, simplemente ejecuta el siguiente comando:
tar -zxvf guia.tar.gz
Si deseas extraer solo uno de los archivos contenidos en el archivo comprimido, simplemente indícalo al final del comando. Por ejemplo, supongamos que deseamos extraer el archivo marvin.png de guia.tar.gz. Esto es lo que debe escribir:
tar -zxvf guia.tar.gz marvin.png