¿Qué es el alquitrán? Tar significa "archivo de cinta" y se refiere a una práctica de los primeros días de la informática cuando se realizaban copias de seguridad de los datos en cintas. A pesar del origen nostálgico del nombre, tar es muy potente y utiliza tecnologías modernas para archivar y comprimir archivos.
Actualizar los conceptos básicos:archivado frente a compresión
El comando tar es importante para que los usuarios de Linux lo entiendan. Antes de profundizar demasiado en el tema, comencemos con una pequeña aclaración.
- Archivado:el acto de almacenar varios archivos como uno solo.
- Compresión:el acto de reducir un archivo o archivos más grandes.
Tar es una herramienta de archivo. Crea un solo archivo a partir de múltiples archivos. Esto ahorra ancho de banda de la red, tiempo y potencia de procesamiento mientras se transfieren los archivos. Un solo archivo de 100 MB requiere mucho menos que transferir 100 archivos de 1 MB debido a la sobrecarga de archivos.
Esta es la razón por la que a menudo encontrará software disponible en un 'tarball '. Tarball es el término común utilizado para un archivo tar.
Si bien tar en sí mismo no puede comprimir archivos, puede usar uno de los algoritmos de compresión comunes para comprimir los archivos mientras crea un tarball. Te mostraré cómo hacerlo más adelante en este tutorial básico de alquitrán.
Archivos tar comunes
Estos son algunos de los "archivos tar" comunes que encontrará:
.Alquitrán :Este es un archivo tarball. Es solo un archivo y no se realiza ninguna compresión.
.Tar.Gz o .tgz :Esta es la extensión de un archivo comprimido con Gzip.
.Tar.Bz2 o .tbz :Esta es la extensión de un archivo comprimido con Bz2. Esta es una tecnología relativamente nueva. Cuenta con una mayor relación de compresión, pero ese mayor poder de contracción significa que lleva un poco más de tiempo completarlo.
.Tar.xz o .txz, etc. :Tar también cuenta con soporte integrado para xz, lzip y más. Estas herramientas utilizan principalmente el mismo algoritmo de compresión, LZMA. El popular 7z que se ha vuelto bastante común en entornos Windows también usa este algoritmo. Otras diferencias en los archivos resultan de la estructura y los metadatos. No entraré en estos detalles en nuestros ejemplos, pero quería mencionarlos.
Es importante recordar que las extensiones no son necesarias en Linux y otros sistemas basados en Unix. Por lo general, su sistema Unix puede identificar archivos por sus encabezados, independientemente de la extensión, pero usar el esquema de nombres común puede ayudar a evitar confusiones. Puede usar el comando de archivo en Linux para saber el tipo de archivo.
Ejemplos de comandos tar
Para este artículo, quiero demostrar algunos de los métodos comunes para archivar y comprimir archivos usando tar.
He reunido algunos archivos de diferentes tipos en mi carpeta Documentos. Hay imágenes de stock y algunos archivos de texto. Veremos cómo la compresión cambia el tamaño del archivo a través de varios ejemplos.
Aquí hay una lista completa de los documentos que se utilizarán.
[email protected]:~/Documents$ ll
total 7404
drwxr-xr-x 2 christopher christopher 4096 May 5 10:55 ./
drwxr-xr-x 17 christopher christopher 4096 May 5 10:59 ../
-rw-r--r-- 1 christopher christopher 5094932 Apr 30 23:54 aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r-- 1 christopher christopher 13268 Apr 30 23:57 lorem1.txt
-rw-r--r-- 1 christopher christopher 13268 Apr 30 23:57 lorem2.txt
-rw-r--r-- 1 christopher christopher 13268 Apr 30 23:57 lorem3.txt
-rw-r--r-- 1 christopher christopher 13268 Apr 30 23:56 lorem.txt
-rw-r--r-- 1 christopher christopher 2411919 Apr 30 23:54 mountain-range-2397645.jpg
Ya he mencionado las capacidades del alquitrán. Es una herramienta poderosa con muchas opciones. Las diversas opciones y tipos de archivos pueden hacer que el comando parezca más complicado de lo que realmente es. Como siempre, mi objetivo es desmitificar la línea de comandos. Así que dividamos las cosas en partes más pequeñas antes de combinar varias opciones en los ejemplos.
Aquí hay una tabla de opciones de uso común. Tenga en cuenta que esto es solo el comienzo. Recomiendo revisar la documentación de ayuda usted mismo para encontrar aún más posibilidades una vez que se sienta cómodo.
Cambiar | Opciones expansivas | Descripción |
-c, | –crear | crear un nuevo archivo |
-d, | –diferencia, –comparar | encontrar diferencias entre archivo y sistema de archivos |
-r, | –añadir | añadir archivos al final de un archivo |
-t, | –lista | listar el contenido de un archivo |
-u, | –actualizar | solo agregue archivos más nuevos que copiar en el archivo |
-x, | –extraer, –obtener | extraer archivos de un archivo |
-j, | –bzip2 | filtrar el archivo a través de bzip2 |
-z, | –gzip, –gunzip, –ungzip | filtrar el archivo a través de gzip |
1) Crear un tarball
Anteriormente mencioné los tipos de archivos comunes asociados con el comando tar. Este es quizás el más básico.
tar cvf output_tarball.tar source_directory
No se aplicará compresión, por lo que el archivo ocupará al menos tanto espacio como los archivos en la carpeta de documentos.
[email protected]:~$ tar cvf doc.tar ~/Documents
tar cvf (crear, detallado, archivo-archivo):crea un nuevo archivo tar llamado doc.tar a partir de todos los archivos en ~/Documentos.
[email protected]:~$ ll doc.tar
-rw-r--r-- 1 christopher christopher 7567360 May 5 11:00 doc.tar
Tenga en cuenta que el tarball tendrá la misma estructura de directorios que su directorio de origen del tarball.
2) Crear un tarball gzip
Probemos la compresión gzip mientras creamos el tarball.
[email protected]:~$ tar cvzf doc.tar.gz ~/Documents
tar cvzf (create, verbose, g-zip, file-archive):crea un nuevo archivo tar llamado doc.tar.gz a partir de todos los archivos en ~/Documentos. Utiliza compresión gzip (con la opción z) al crear el tarball.
[email protected]:~$ ll doc.tar.gz
-rw-r--r-- 1 christopher christopher 7512498 May 5 11:01 doc.tar.gz
Como puede ver, el tamaño del tarball comprimido con gzip es 54862 bytes (53 MB) menos que un tarball normal sin comprimir.
Preste atención al usar guion – con opciones tar
Por lo general, cuando usa opciones con un comando de Linux, agrega un guión (-) antes de las opciones.
El guión antes de las opciones no es obligatorio y es mejor evitarlo. Es por eso que no lo he usado en los ejemplos.
Si usa guión antes de las opciones, siempre debe mantener la f al final de las opciones. Si usa tar -cvfz, la z se convierte en un argumento para la opción z. Y luego verás un error como este:
tar:doc.tar.gz:No se puede stat:No existe tal archivo o directorio
Es por eso que es una buena práctica usar la opción f al final de todas las demás opciones para que, incluso si usa un guión por costumbre, no cree un problema.
3) Crear un tarball bz2
Digamos que quieres crear un tarball bz2. Los pasos son los mismos que el anterior. Solo necesita cambiar la opción z (gzip) a j (bz2). Consulte la tabla de opciones que mencioné anteriormente.
[email protected]:~$ tar cvjf doc.tar.bz2 ~/Documents
tar cvfj (crear, detallado, tipo bz2, archivo).
[email protected]:~$ ll doc.tar.bz2
-rw-r--r-- 1 christopher christopher 7479782 May 5 11:04 doc.tar.bz2
¿Notas el tamaño? Es incluso menos que el tarball comprimido con gzip.
4) Muestra el contenido de un tarball
Puedes usar el -t
opción (en lugar de -c) para ver el contenido de un archivo de almacenamiento. Esto funciona igual ya sea que el archivo esté comprimido o no. Enumerará el tamaño real del archivo, no el tamaño comprimido.
[email protected]:~$ tar tvf doc.tar
drwxr-xr-x christopher/christopher 0 2020-05-05 10:55 home/christopher/Documents/
-rw-r--r-- christopher/christopher 5094932 2020-04-30 23:54 home/christopher/Documents/aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r-- christopher/christopher 13268 2020-04-30 23:57 home/christopher/Documents/lorem1.txt
-rw-r--r-- christopher/christopher 13268 2020-04-30 23:56 home/christopher/Documents/lorem.txt
-rw-r--r-- christopher/christopher 2411919 2020-04-30 23:54 home/christopher/Documents/mountain-range-2397645.jpg
-rw-r--r-- christopher/christopher 13268 2020-04-30 23:57 home/christopher/Documents/lorem3.txt
-rw-r--r-- christopher/christopher 13268 2020-04-30 23:57 home/christopher/Documents/lorem2.txt
5) Añadir más archivos a un tarball
Puede agregar archivos a un archivo tarball usando -r
. No puede agregar archivos a un archivo comprimido sin extraerlos primero con el comando tar.
También puede agregar usando -u
opción de actualización. Se supone que esta opción solo agrega los nuevos archivos de acuerdo con los documentos de ayuda, pero en mi práctica, funcionó igual que anexar, agregando nuevas copias de todos los archivos.
[email protected]:~$ tar rvf doc.tar ~/Documents/
Ahora que ha visto cómo los diferentes tipos de compresión afectan el tamaño total del archivo, veamos cómo extraer esos archivos.
[email protected]:~$ cd docs
[email protected]:~/docs$ tar xvf ~/doc.tar.gz
Cambié a un nuevo directorio llamado docs. Luego usé tar xvf (extraer, detallado, archivar) para descomprimir el contenido aquí.
[email protected]:~/docs/home/christopher/Documents$ ls
aerial-view-of-bushes-on-sand-field-3876435.jpg lorem1.txt lorem2.txt lorem3.txt lorem.txt mountain-range-2397645.jpg
Es importante tener en cuenta que tar conserva la estructura del archivo, por lo que cuando extraigo los archivos, están en /home/christopher/Documents. Para evitar esto, puede cambiar al directorio deseado (~/Documentos) y copiar todos los archivos usando el comodín * en lugar de la estructura del directorio.
De forma predeterminada, el contenido de un tarball se extrae en el directorio actual. Eso no siempre es deseable.
Puede extraer un tarball a un directorio específico de la siguiente manera:
tar xvf tar_file -C destination_directory
El directorio de destino debe existir, así que asegúrese de usar el comando mkdir para crear uno de antemano.
Resumen
Esto es lo que debe tener en cuenta al usar tar en Linux:
Casi siempre se usa en formato tar cf o tar xvf. Recuerda esto:
- c significa crear:se usa para crear un tarball
- x significa extraer:se usa para extraer un tarball
- f significa archivo:se usa para el nombre de archivo tar (tanto para crear como para extraer). Intenta usarlo al final de las opciones.
- v significa detallado:es opcional pero muestra lo que sucede con el comando.
Por supuesto, no puede usar las opciones c y x en el mismo comando tar.
Conclusión
¿Disfrutaste nuestra guía del comando tar? Espero que todos estos consejos te hayan enseñado algo nuevo.
Si te gusta esta guía, compártela en las redes sociales. Si tiene algún comentario o pregunta, déjelos a continuación.
Si tiene alguna sugerencia sobre temas que le gustaría ver cubiertos, no dude en dejarlos también. Gracias por leer.