GNU/Linux >> Tutoriales Linux >  >> Linux

Primeros pasos con el comando Tar

¿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.

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/

6) Extraer un tarball

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.

7) Extraiga el tarball a un directorio específico

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.


Linux
  1. Comenzando con Zsh

  2. Primeros pasos con el comando tac de Linux

  3. Primeros pasos con el comando cat de Linux

  4. Primeros pasos con PostgreSQL en Linux

  5. Primeros pasos con Multipass:ejecución de máquinas virtuales con Ubuntu

Primeros pasos con GIT en Linux

Primeros pasos con UFW (cortafuegos sin complicaciones) en Ubuntu 20.04

Primeros pasos con systemctl

Primeros pasos con cPanel

Primeros pasos con el comando SED [Guía para principiantes]

Primeros pasos con AWK Command [Guía para principiantes]

    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