15 usos del comando Tar en Linux con ejemplos

T ar es una gran utilidad que se utiliza para recopilar varios archivos en un solo archivo. Este archivo a menudo se denomina “tarball”. Hoy vamos a contarte las diferentes cosas que puedes hacer con lostarballsusando elcomandotar, con ejemplos prácticos.

Tar se utiliza principalmente para aplicaciones de empaquetado y sus binarios para la instalación sin formato que funcionaría en cualquier sistema, en lugar de formatos específicos básicos como los paquetes DEB, RPM o AUR. Aparte de eso, tar también es un formato bastante eficiente para crear copias de seguridad.

NOTA: Todas las etiquetas -f utilizadas en cualquier lugar son necesarias siempre que se interactúe con cualquier ‘archivo’, que es casi todos los casos.

Usando el comando Tar en Linux

1. –lista

Esta bandera se usa para listar los archivos dentro de un tarball. El argumento requerido es solo el nombre del tarball y (como se mencionó), la bandera -f . La sintaxis estándar se ve así:

tar --list -f <Tarball name>

En forma abreviada:

tar tf <Tarball name>

--lista
-lista

2. –crear

La bandera –create se usa para crear un nuevo tarball. Los argumentos necesarios son el nombre del tarball (futuro) y los archivos que se incluirán. Los nombres de directorios también son aceptables como argumento. El formato estándar es:

tar --create -f <Required tarball name> <File names>

Esto se puede utilizar de forma abreviada de la siguiente manera:

tar cf <Required tarball name> <File names>

--crear
-crear

Creando otros formatos de archivo

Hay diferentes formatos de archivo que se incluyen en tar, que se utilizan para la compresión. Los formatos que vamos a mostrar son los formatos .tar.xz y .tar.gz .

Crear un archivo XZ ( .tar.xz )

tar cfJ <Required tarball name> <File names>

Crear un archivo GZip ( .tar.gz )

tar cfz <Required tarball name> <File names>

Crear un archivo bzip2 (.tar.bz2)

tar cfj <Required tarball name> <File names>

3. –anexar

El indicador –append se usa para agregar archivos a un tarball ya existente. La sintaxis es bastante simple, es decir:

tar --append -f <Tarball name> <Names of files to be added>

Más corta:

tar rf <Tarball name> <Names of files to be added>

--adjuntar
-adjuntar

4. –eliminar

Se utiliza para eliminar archivos de un tarball. La sintaxis requiere el nombre del tarball y el nombre del archivo en el siguiente orden:

tar --delete -f <Name of tarball> <Names of files>

--Eliminar
-Eliminar

5. –diff

La bandera –diff encuentra las diferencias entre un tarball y ciertos archivos que el usuario debe especificar. Por ejemplo, como se mencionó anteriormente, tar se usa ampliamente para crear copias de seguridad. Por tanto, si hay un tarball existente y desea comprobar si existen diferencias entre el estado actual de los archivos, en comparación con los que ya están en el tarball, puede utilizar –diff .

Ejemplo:

En esta situación, el archivo de prueba en el tarball test.tar está vacío, pero el que está fuera del tarball tiene el contenido como se muestra. Observe las diferencias demostradas por alquitrán .

--diff
–Diff

Como se puede ver aquí, el error se muestra entre el vacío de prueba y la no vacía prueba es ‘ diferente tamaño,’ pero incluso cuando el tamaño es el mismo, hay un error que se desprende:

Contenido diferente
Contenido diferente

En conclusión, la sintaxis general se puede mostrar como:

tar --diff -f <Name of tarball> <Names of files to be compared>

6. –actualizar

Esta bandera se puede utilizar para actualizar un archivo específico dentro del tarball. Si se coloca un archivo con el mismo nombre en este comando, el archivo con el nuevo contenido se agregará al final del archivo, en lugar de que el anterior sea reemplazado por la última versión. La siguiente captura de pantalla describe esto:

Actualizar
Actualizar

Nuevamente, esto se puede utilizar en el caso de realizar copias de seguridad. La sintaxis general se convierte en:

tar --update -f <Tarball name> <Names of files to be updated>

Formato más corto:

tar uf <Tarball name> <Names of files to be updated>

7. –extraer

Este es probablemente el indicador más utilizado del comando tar. Se usa para extraer archivos de un tarball y, dado que se usa así, también tiene muchas configuraciones. Para variar, los argumentos excepto el nombre del tarball son opcionales. Si no se especifica, tar extraerá todos los archivos dentro del tarball. Entonces, la sintaxis para extraer archivos específicos:

tar --extract -f <Tarball name> <File names>

Para extraer todos los archivos:

tar --extract -f <Tarball name>

O un formato más corto:

tar xf <Tarball name> <Optional file names>

--extraer
-extraer

Extracción de archivos GZip ( .tar.gz )

tar zxf <Tarball name> <Optional file names>

Extracción de archivos tar XZ ( .tar.xz )

tar xf <Tarball name> <Optional file names>

Extracción de archivos bzip2 (.tar.bz2)

tar xjf <Tarball name> <Optional file names>

Ahora, después de manejar los conceptos básicos, podemos profundizar en algunas características de tar .

8. Control de sobrescritura

Puede suceder que los nombres de uno o más de los archivos que se extraen de un tarball coincidan con el nombre de los archivos que ya existen en el directorio de trabajo. Se pueden tomar algunas medidas para hacer lo que desee cuando eso suceda. Varios escenarios:

Para sobrescribir los archivos

El primer caso es que desea reemplazar los archivos existentes en el directorio. Para asegurarse de que esto suceda, emita el comando de la siguiente manera:

tar --extract -f <Tarball name> <Optional file names> --overwrite

Para no sobrescribir archivos

Esto no sobrescribirá los archivos, diciendo que los archivos ya existen. El comando se puede emitir de la siguiente manera:

tar --extract -f <Tarball name> <Optional file names> -keep-old-files

Para sobrescribir solo archivos más antiguos

Esto es particularmente útil, ya que solo protege aquellos archivos que son más nuevos en comparación con los archivos del archivo. Por ejemplo, aquí, test2 dentro del archivo tiene contenido que se ha modificado en comparación con test2 en el directorio:

--mantener-archivos-nuevos
–Mantener-archivos-nuevos

Como puede ver, dice ‘ … es más nuevo o de la misma edad ‘ para el resto de los archivos, pero no test2 , lo que significa que test2 fue reemplazado. Por tanto, la estructura del comando es:

tar --extract -f <Tarball Name> <Optional file names> --keep-newer-files

9. –eliminar-archivos

Este indicador se puede utilizar como acceso directo para eliminar archivos del directorio directamente después de que se hayan archivado. Es un comando bastante simple, la sintaxis es la siguiente:

tar --create -f < Required tarball name> <File names> --remove-files

--remove-files
–Remove-files

10. –excluir

La marca –exclude se puede utilizar para excluir determinados archivos del archivado. El patrón debe especificarse antes que cualquier otra cosa, y entre comillas, como se usa en el siguiente comando:

tar --exclude="PATTERN" --create -f <Tarball name required> <File names>

Uso de ejemplo:

--excluir
-excluir

11. –to-command = ‘COMANDO’

El comando tar tiene su característica para usar la salida como entrada para otro comando, es decir, el indicador –to-command . Por ejemplo, quiero usar los nombres de los archivos de test2.tar y crear un directorio con el mismo nombre que el de los archivos dentro del archivo. Esto se puede hacer como:

tar xf test2.tar --to-command='mkdir $TAR_REALNAME'

- al mando
–A-mandar

Esto es bastante avanzado. El ‘ $ ‘ es necesario para hacer referencia a cualquier variable del sistema mientras se usa Bash. El nombre ‘ TAR_REALNAME ‘ es la variable que se usa para hacer referencia al nombre de un solo archivo mientras se usa el indicador –to-command en tar . Hay varias de estas variables, que se pueden encontrar en los hombre páginas de alquitrán , así como en la página.

12. Propiedad de los archivos

La propiedad de los archivos en el archivo se puede configurar de varias formas. En primer lugar, para crear un archivo en el que los archivos se asignan a un propietario específico, se puede utilizar el indicador &ltem&gt–owner&lt/em&gt . Uso de ejemplo:

--dueño
-dueño

Como se ve, el usuario 0 y el grupo 0 corresponden a la raíz del usuario . Root (como probablemente sepa) es el emperador supremo del sistema. Puede encontrar el UID (ID de usuario) y GID (ID de grupo) de otros usuarios utilizando el comando id de la siguiente manera:

id <username>

Ahora para extraer los archivos conservando los propietarios del archivo:

tar xf <Tarball name> --same-owner

13. Solución de copia de seguridad completa

Como ya he mencionado varias veces, tar es un programa de copia de seguridad bastante bueno. Les voy a contar sobre algunas banderas más que lo hacen aún mejor. En primer lugar, hay cosas que queremos incluir / excluir al realizar copias de seguridad. Incluya los archivos a los que apuntan los enlaces (enlaces simbólicos). Excluya los archivos de respaldo anteriores y los directorios VCS (en su mayoría, solo es útil para los programadores). También es importante mantenerse fuera de los directorios de los que está haciendo una copia de seguridad.

Por ejemplo, está en el directorio / home y desea hacer una copia de seguridad del usuario, testuser. El comando se vería así:

sudo tar --exclude-backups --exclude-vcs --dereference --create -f backup.tar ./testuser
  • ‘sudo’ por dos razones: Primero, que está haciendo cosas en el directorio / home, que requiere privilegios. En segundo lugar, si algún enlace simbólico apunta a archivos fuera de los privilegios habituales del usuario, se producirá un error.
  • –Exclude-backups y –exclude-vcs excluyen los archivos de respaldo y VCS respectivamente.
  • –Dereference hace que tar siga los enlaces simbólicos a los datos a los que apuntan.

14. Hora modificada

Hay muchas cosas que se pueden hacer con el tiempo de modificación de un archivo. En primer lugar, para cambiar la fecha de modificación a medida que se archiva un archivo, podemos usar el indicador –mtime . Sintaxis básica:

tar --create -f <Required tarball name> <File names> --mtime=YYYY-MM-DD
-mtime
-mtime

Como antídoto para esto, el indicador -m se puede usar para obtener la fecha modificada sin cambios. Para usar esto:

tar xf <Tarball name> -m

Actuar solo en archivos modificados después de una fecha específica

Esta forma del comando se puede utilizar para actuar sobre archivos que se han modificado después de una fecha específica. El comando se parece a:

tar xf <Tarball name> --newer-mtime=YYYY-MM-DD

El uso de ejemplo se muestra a continuación.

--newer-mtime
–Newer-mtime

15. Permisos

Finalmente, los permisos se pueden configurar bastante bien en el caso de archivos tar . Hay dos variaciones significativas:

Conservación de los permisos originales

Esto se puede usar para preservar los permisos del archivo, como se menciona en el archivo después de ser extraído. Esto se logra a través de un comando de este tipo:

tar xf <Tarball name> --preserve-permissions

--preservar-permisos
–Preservar-permisos

Modificar el permiso como valor predeterminado

En segundo lugar, los permisos se pueden cambiar como valores predeterminados de umask . El valor predeterminado varía según los sistemas. Para hacer eso, ingrese el siguiente comando:

tar xf <Tarball name> --no-same-permissions

--no-mismos-permisos
–No-mismos-permisos

Conclusión

El comando tar es mucho más de lo que parece. Tiene un amplio espectro de usos, desde empaquetar aplicaciones, crear copias de seguridad, hasta almacenar sistemas operativos completos. Esperamos que el tutorial te haya ayudado a aprender cosas nuevas y emocionantes sobre el alquitrán . Para cualquier pregunta, no dude en utilizar la sección de comentarios.

Leave a Comment

Your email address will not be published. Required fields are marked *

Hazlo Linux