Comprimir archivos en Ubuntu con el comando tar
Ya hemos aprendido, hace unos días, cómo Comprimir archivos en Ubuntu con el comando gzip. Sin embargo, quizás la operación más común sea crear un solo archivo que contenga en su interior una copia de varios archivos y/o carpetas, pero ocupando menos espacio que los originales.
En estos casos, el comando que suele utilizarse en Ubuntu, y en el resto de distribuciones GNU/Linux, es tar. Hoy vamos a explicarte cómo hacer un uso sencillo de este comando.
¿Cómo funciona tar?
En realidad, el comando tar está pensado para crear un nuevo archivo que actúe como contenedor de otros archivos, pero no los comprime.
Así, por ejemplo, podemos crear un archivo que contenga en su interior todas las imágenes en formato jpeg de un directorio, escribiendo la siguiente orden:
tar -vcf ~/Imágenes/wallpaper/imágenes.tar ~/Imágenes/wallpaper/*.jpeg
En nuestro ejemplo, hemos utilizado la misma ruta como origen y como destino, para que puedas ver en la ventana del explorador de archivos lo que está ocurriendo. Sin embargo, tú puedes usar las que prefieras.
En este caso, el argumento v nos permite obtener detalles del funcionamiento de tar, el argumento c indica que queremos crear un archivo y el argumento f especifica el nombre del archivo contenedor (en este ejemplo, Imágenes.tar).
A continuación, sólo nos falta incluir los archivos que vamos a almacenar en el contenedor (en nuestro ejemplo, todos los que terminen en .jpeg).
Al pulsar la tecla Intro, aparecerá un nuevo archivo en la carpeta que contenía las imágenes.
Almacenar archivos concretos
En la orden anterior, podemos sustituir el patrón por varios nombres de archivos individuales separados por comas.
Además, para simplificar la orden, hemos comenzado por desplazarnos hasta la ruta donde se encuentran los archivos. Así no tenemos que escribir la ruta completa en el comando tar:
cd ~/Imágenes/wallpaper
A continuación, escribimos la nueva versión de la orden tar:
tar -vcf imágenes.tar photo01.jpeg photo02.jpeg photo03.jpeg
También hemos eliminado el archivo que creamos en el apartado anterior, para que se vea de nuevo el resultado.
Al ejecutar el comando, comprobamos que aparece el archivo contenedor.
Y, como antes, aparece en la ventana de la terminal una lista de los archivos que se han incorporado.
Comprobar el contenido de un archivo contenedor
Una vez creado el archivo contenedor, podremos consultar su contenido cambiando el argumento c por t. Así, para ver el contenido del archivo anterior, escribiremos lo siguiente:
tar -vtf imágenes.tar
Al hacerlo, obtenemos una línea por cada archivo donde se muestra el usuario y grupo propietario del archivo, su tamaño, la fecha y hora de su creación y el nombre completo.
Extraer el contenido de un archivo contenedor
Para comprobar cómo funciona la extracción del contenido de un archivo contenedor, lo primero que vamos a hacer es mover el archivo a una carpeta diferente:
mv imágenes.tar ../destino
Después, hacemos que la carpeta de destino se convierta en nuestra carpeta actual:
cd ../destino
Y por último extraemos el contenido del archivo. Para lograrlo, sólo tenemos que utilizar el argumento x:
tar -vxf imágenes.tar
El comando nos muestra los archivos que se han extraído.
Y para comprobar que todo ha sido correcto, nos desplazamos con el explorador de archivos hasta la carpeta de destino.
¿Cómo comprimir archivos con tar?
Hemos dicho al principio que el comando tar, por sí mismo, no comprime la información que guarda dentro del archivo contenedor. Sin embargo, podemos utilizar el argumento z para que la salida del comando tar se envíe al comando gzip obteniendo así un archivo comprimido.
Para comprobarlo, volvemos a la carpeta con las imágenes originales:
cd ../wallpaper/
Y escribimos el siguiente comando:
tar -czvf imágenes.tar.gz *.jpeg
El funcionamiento de tar será similar al del primer ejemplo de este artículo.
Además, incluso podemos elegir enviarlos a bzip2, otro comando de compresión que aplica algoritmos diferentes a gzip. Para lograrlo, basta con cambiar el argumento z, que añadíamos en el ejemplo anterior, por el el argumento j.
Por lo tando, el comando nos quedaría así:
tar -cjvf imágenes.tar.bz2 *.jpeg
De nuevo, tar nos muestra la lista de los archivos procesados.
Y hasta aquí el artículo de hoy. Espero que te haya parecido útil.