GNU/Linux >> Tutoriales Linux >  >> Linux

Comando tar en Linux con ejemplos

Introducción

El GNU tar (abreviatura de T simio AR chiver) es la utilidad de archivado más utilizada en los sistemas Linux. Disponible directamente en la terminal, el tar El comando ayuda a crear, extraer y enumerar el contenido del archivo.

La utilidad es simple y tiene muchas opciones útiles para comprimir archivos, administrar copias de seguridad o extraer una instalación sin formato.

Este tutorial muestra cómo usar el comando tar a través de ejemplos y las opciones disponibles.

Requisitos previos

  • Un sistema que ejecuta Linux.
  • Acceso a la línea de comando/terminal.
  • Un archivo o archivos para probar el comando.

Sintaxis del comando Tar

El tar La sintaxis general del comando es:

tar <operation mode> <option(s)> <archive> <file(s) or location(s)>
  • Modo de funcionamiento indica qué operación se ejecuta sobre los archivos (creación, extracción, etc.). El comando permite y requiere solo una operación.
  • Opciones modifican el modo de funcionamiento y no son necesarios. No hay límite en el número de opciones.
  • El archivo es el nombre y la extensión del archivo.
  • El(los) nombre(s) de archivo es una lista separada por espacios para extracción o compresión o comodín de nombre coincidente.

Hay tres posibles estilos de sintaxis para usar las operaciones y opciones:

1. Estilo tradicional , agrupados sin guiones.

Por ejemplo:

tar cfv <archive> <file(s) or location(s)>

2. Estilo de opción abreviada de UNIX , usando un solo guión y opciones agrupadas:

tar -cfv <archive> <file(s) or location(s)>

Alternativamente, un guión antes de cada opción:

tar -c -f -v <archive> <file(s) or location(s)>

3. Estilo de opción larga de GNU con un guión doble y un nombre de opción descriptivo:

tar --create --file <archive> --verbose <file(s) or location(s)>

Los tres estilos se puede utilizar en un solo tar comando.

Opciones de comando Tar

La siguiente tabla describe el uso común de tar operaciones y opciones.

Siga los ejemplos de la siguiente sección para aprender cómo trabajar con tar .

Ejemplos de comandos Tar

Los siguientes ejemplos tienen los siguientes requisitos:

1. Cree un directorio llamado tar_examples y navegue hasta el directorio:

mkdir tar_examples && cd tar_examples

2. Cree otro directorio llamado archivos en tar_examples e ingrese a ese directorio:

mkdir files && cd files

3. Cree archivos para completar los archivos directorio:

touch file{0..100}.txt

Para volver al directorio principal, use:

cd ..

Todos los ejemplos a continuación funcionan a partir de tar_examples directorio.

1. Crear un archivo

La sintaxis para crear un archivo depende del tipo de archivo. Para hacer un archivo, use tar con -c o --create operación.

Crear un archivo tar

Para hacer un archivo tar (también llamado tarball), use:

tar cf <archive name>.tar <file(s) or location(s)>

Por ejemplo, archive los archivos directorio:

tar cf files.tar files

La salida enumera cada archivo agregado al archivo. Muestre el contenido del directorio para ver el file.tar creado archivo:

tar cf files.tar files

La salida enumera cada archivo agregado al archivo. Muestre el contenido del directorio para ver el file.tar creado archivo:

ls -l

Crear un archivo comprimido tar.gz

Agrega el -z opción para crear un archivo GNUzip (gzip) comprimido:

tar czf <archive name>.tar.gz <file(s) or location(s)>

Por ejemplo:

tar czf files.tar.gz files

El tamaño del archivo es más pequeño que un archivo tarball normal y el directorio original.

Crear archivo comprimido tar.bz2

El bzip2 es un programa de compresión de archivos y una alternativa a gzip.

Para crear un tar.bz2 archivo, agregue el -j etiqueta:

tar cjf <archive name>.tar.bz2 <file(s) or location(s)>

Por ejemplo:

tar cjf files.tar.bz2 files

El bzip2 tiene una mayor tasa de compresión y toma más tiempo que gzip.

Crear archivo tar.xz

Usa el -J etiqueta para comprimir archivos en formato tar.xz:

tar cJf <archive name>.tar.xz <file(s) or location(s)>

Por ejemplo:

tar cJf files.tar.xz files

La compresión xz tarda más en comparación con gzip y bz2. Sin embargo, con archivos más grandes, xz tiene las tasas de compresión más altas.

2. Eliminar archivos después de la creación

Para eliminar los archivos del disco después de archivarlos, utilice --remove-files opción al final:

tar cf <archive> <file(s) or location(s)> --remove-files

Por ejemplo, cree un archivo tar con los archivos y elimínelo del disco con un solo comando:

tar cf files.tar files --remove-files

Compruebe el contenido del directorio para confirmar que la operación funciona correctamente.

3. Extracto del Archivo

La extracción de un archivo o archivo comprimido utiliza -x o --extract operación con tar . Las opciones adicionales dependen del tipo de archivo y de dónde tar debe extraer los componentes.

Extraer del archivo tar

La sintaxis general para extraer de un archivo tar es:

tar xf <archive name>.tar

Por defecto, tar extrae todos los componentes al directorio actual. Para indicar dónde extraer los componentes, agregue el -C opción y especifique la ruta:

tar xfC <archive name>.tar <path>

Por ejemplo, para crear un directorio llamado extracted_tar y extraiga los archivos de files.tar , ejecuta:

mkdir extracted_tar && tar xfC files.tar extracted_tar

El comando no genera un mensaje de confirmación. Verifique el contenido del directorio para confirmar que los componentes se extrajeron correctamente.

Extracto del archivo tar.gz

Usa el -z opción para extraer un archivo tar.gz:

tar xzf <archive name>.tar.gz

El comando extrae el contenido en el directorio actual. Agrega el -C opción para especificar la ubicación:

tar xzfC <archive name>.tar.gz <location>

Por ejemplo, cree un nuevo directorio llamado extracted_gz y extraiga los files.tar.gz contenido:

mkdir extracted_gz && tar xzfC files.tar.gz extracted_gz

Los archivos comprimidos tar.gz tardan menos tiempo en extraerse en comparación con otros formatos de compresión.

Extracto del archivo tar.bz2

Para extraer archivos de un archivo comprimido tar.bz2 al directorio actual, use:

tar xjf <archive name>.tar.bz2

Extraiga los archivos tar.bz2 en un directorio específico con:

tar xjfC <archive name>tar.bz2 <location>

Por ejemplo, cree un directorio y extraiga el contenido de files.tar.bz2 :

mkdir extracted_bz2 && tar xjfC files.tar.bz2 extracted_bz2

Extraer del archivo tar.xz

Agrega el -J opción para extraer de archivos comprimidos tar.xz. La sintaxis para extraer en el directorio actual es:

tar xJf <archive name>.tar.xz

Para extraer el contenido a un directorio específico, use -C y agregue la ruta:

tar xJfC <archive name>.tar.xz <location>

Como ejemplo, cree un directorio y extraiga los files.tar.xz contenido:

mkdir extracted_xz && tar xJfC files.tar.xz extracted_xz

El formato de compresión xz es el término medio entre gz y bz2 cuando se trata de tiempo de extracción.

4. Control de sobrescritura

Los controles de sobrescritura tar manejan situaciones en las que los nombres de los archivos en el archivo se superponen con los archivos en el directorio de trabajo.

Las tres posibles acciones de sobrescritura son:

1. Sobrescribir archivos en el directorio de trabajo:

tar xf <archive> <Optional file(s) or location(s)> --overwrite

2. No sobrescriba archivos en el directorio de trabajo:

tar xf <archive> <Optional file(s) or location(s)> --keep-old-files

Si los archivos ya existen, tar no realiza la extracción.

3. Extraiga archivos solo si son más nuevos que los archivos existentes:

tar xf <archive> <Optional file(s) or location(s)> --keep-newer-files

Si los archivos en el directorio de trabajo son más nuevos o tienen la misma antigüedad, tar no extrae los archivos.

5. Listar contenido del archivo

Use el siguiente comando para enumerar el contenido de un archivo:

tar tf <archive>

La opción funciona para cualquier extensión de archivo que contenga tar.

Por ejemplo, enumere los archivos y directorios en files.tar archivo:

tar tf files.tar.gz

La salida enumera todos los contenidos almacenados en el archivo.

6. Buscar un archivo en un archivo

Hay dos formas de localizar contenido específico usando tar:

1. El -t La opción de listar archivos en un archivo es útil para localizar archivos específicos. Agregue el nombre (o nombres) del archivo después del comando:

tar tf <archive> <file(s)>

Por ejemplo, para localizar archivo50.txt en los archivos.tar.gz archivar, ejecutar:

tar tf files.tar.gz file/file50.txt

La opción requiere conocer la posible ruta al archivo.

2. Usa el tar junto con el comando grep para filtrar la salida:

tar tf <archive> | grep <file(s)>

Por ejemplo:

tar tf files.tar.gz | grep file50.txt

La opción no requiere conocer la posible ruta al archivo.

7. Buscar varios archivos en un archivo

Usa los --wildcards opción para hacer coincidir varias instancias de archivo. Por ejemplo:

tar tf files.tar.gz --wildcards file/files5*.txt

Aplique la coincidencia de comodines cuando los archivos tengan un nombre similar o para filtrar un determinado tipo de archivo.

8. Excluir archivos al crear un archivo

Para excluir ciertos archivos del archivo durante la creación, agregue la siguiente opción:

tar cf <archive> --exclude='<pattern>' <files(s) or location(s)>

Por ejemplo, cree un archivo desde el directorio de archivos y excluya todos los archivos .txt:

tar cf files.tar --exclude='*.txt' files

Enumere los contenidos del archivo:

tar tf files.tar

La salida no muestra archivos .txt, solo los archivos directorio en el archivo.

9. Extraer archivo único del archivo

Evite extraer todo el archivo si necesita uno o varios archivos.

Para obtener un solo archivo de un archivo:

1. Enumere los contenidos y verifique si el archivo existe:

tar tf files.tar | grep file100.txt

La salida imprime la ruta al archivo necesario para el siguiente paso.

2. Extraiga el archivo específico con:

tar xf files.tar files/file100.txt

El comando crea el directorio archivos con solo el archivo indicado. Siga los mismos pasos para extraer un solo archivo de archivos comprimidos agregando la etiqueta adecuada. Por ejemplo, utilice -z opción para extraer de un archivo tar.gz.

10. Opción detallada

La opción detallada muestra información adicional después de ejecutar un comando tar. Agrega -v o --verbose a cualquier operación para ver el resultado.

Por ejemplo, cree un archivo tar.gz y agregue -v :

tar czfv files.tar.gz files

La salida muestra cada archivo a medida que se agrega al archivo.

Algunos comandos tar muestran información adicional cuando agregas -v etiqueta dos veces. Por ejemplo, intente agregar archivos a un archivo con -vv :

tar czfvv files.tar.gz files

La salida imprime un formato de listado largo y se ve similar a ejecutar el comando ls -l.

11. Eliminar del archivo

Para eliminar del archivo, busque el archivo que desea eliminar, por ejemplo:

tar tf files.tar | grep file100.txt

Luego, elimine el archivo usando --delete etiqueta:

tar --delete -f files.tar files/file100.txt

La opción de eliminar no funciona en archivos comprimidos formatos de archivo.

12. Agregar archivos al archivo

Agregue archivos a un archivo existente usando -r etiqueta. La sintaxis es:

tar rf <archive name>.tar <file(s) or location(s)>

Por ejemplo, agregue el archivo comprimido files.tar.gz archivo a files.tar archivo:

tar rf files.tar files.tar.gz

Los archivos ya comprimidos no se pueden actualizar, por lo que la sintaxis solo funciona para archivos tarball .

13. Combinar archivos

Usa el --concatenate o -A opción para combinar múltiples archivos. La sintaxis básica es:

tar Af <archive to extend> <archive to extend with>

Como ejemplo, copie el files.tar existente archivo usando el comando cp:

cp files.tar files_copy.tar

A continuación, concatene los dos archivos:

tar Af files.tar files_copy.tar

Para confirmar que la concatenación funcionó, verifique el tamaño del archivo.

14. Diferencia entre archivo y archivos

Para verificar la diferencia entre un archivo comprimido y los archivos en el disco, use -d etiqueta:

tar df <archive name>

El comando busca los mismos contenidos y los compara con lo que hay en el archivo. La opción solo busca archivos existentes e ignora cualquier archivo agregado recientemente.

Los pasos a continuación muestran cómo usar el -d , --diff , o --compare etiqueta con tar :

1. Cree un archivo tar:

tar cf files.tar files

2. Compare el archivo con el directorio existente:

tar df files.tar

La salida no muestra nada, lo que significa que no hay diferencia entre los archivos existentes.

3. Agregue texto a un archivo existente en los archivos directorio:

echo 'Hello' >> files/file0.txt

4. Compare de nuevo el archivo con el directorio existente:

tar df files.tar

Esta vez, la salida muestra diferencias en el tiempo de modificación y el tamaño de un archivo específico. La comparación proporciona información sobre los cambios realizados en el sistema después de crear el archivo.

15. Actualizar archivos en archivo

Actualice los archivos existentes en el archivo con una versión más nueva desde el disco con -u opción:

tar uf <archive> <file(s) or location(s)>

Por ejemplo, actualice files.tar archivo con un archivo de texto modificado:

tar uf files.tar files

Compruebe el contenido tar del archivo modificado:

tar tfv files.tar | grep files0.txt

El comando actualiza el archivo con los archivos modificados sin sobrescribirlos.

16. Hora modificada

Tar ofrece varias opciones para modificar la marca de tiempo del archivo. Establezca una fecha personalizada al crear un archivo agregando --mtime opción y proporcionando una fecha:

tar cf <archive> <file(s) or location(s)> --mtime=YYYY-MM-DD

Por ejemplo, cree un archivo y establezca la fecha en 1 de enero de 1999:

tar cf files.tar files --mtime=1999-01-01

Alternativamente, extraiga los archivos con la fecha y hora actuales:

tar xf files.tar -m

Una función útil cuando se trabaja con el tiempo es el filtrado de archivos modificados después de una fecha específica. Por ejemplo, para extraer archivos creados después de una fecha, use --newer-mtime y agregue la fecha:

tar xf <archive> --newer-mtime=YYYY-MM-DD

17. Permisos

Hay dos formas posibles de controlar los permisos de archivo con tar al extraer un archivo:

1. Conservar los permisos originales:

tar xf <archive name> --preserve-permissions

Los permisos son los que se indican en el archivo antes de la creación del archivo.

2. Modifique los permisos al valor predeterminado de umask:

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

Los archivos toman los permisos predeterminados de Linux.

18. Propiedad del archivo

Tar permite la configuración de propiedad de archivos. Por ejemplo, para establecer el propietario del archivo al crear un archivo, agregue el --owner y --group opciones y proporcione valores para cada uno:

tar cf <archive> <file(s) or location(s)> --owner=<value> --group=<value>

El valor del propietario representa el UID (ID de usuario) mientras que el valor del grupo es el GID (Identificación del grupo). Para encontrar estos valores para un usuario, ejecute:

id <username>

Por ejemplo, cree un archivo y establezca la propiedad en root:

tar cf files.tar files --owner=0 --group=0

Tar permite preservar la propiedad al extraer de un archivo. Para hacerlo, agregue el --same-owner opción al final:

tar xf <archive> --same-owner

19. Escribir en programa externo

El --to-command La opción le indica a tar que envíe cada archivo extraído a la salida estándar para un programa externo. La sintaxis básica es:

tar xf <archive> --to-command='<command>'

Por ejemplo, extraiga files.tar contenido y canalice los nombres de los archivos como directorios:

tar xf files.tar --to-command='mkdir $TAR_FILENAME'

El comando crea directorios con el nombre de cada archivo extraído. Para obtener más información y las variables de entorno de Linux disponibles, visite la página del manual.

20. Crear copias de seguridad diarias

Para automatizar las copias de seguridad diarias, cree un script bash y agregue las siguientes líneas:

tar czf backup-$(date +%Y%m%d).tar.gz files
find backup* -mtime +1 -delete

El comando tar crea un archivo comprimido, mientras que el comando find busca archivos de respaldo que tengan más de un día. Cambia el +1 parámetro a +7 para semanal o +31 para copias de seguridad mensuales.


Linux
  1. Comando Linux Tee con ejemplos

  2. Comando de cabeza de Linux con ejemplos

  3. Comando JQ en Linux con ejemplos

  4. Comando tar de Linux

  5. Ejemplos de comandos tar en Linux

Comando Tr en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

15 usos del comando Tar en Linux con ejemplos

Comando IP de Linux con ejemplos

    Comando Función Descripción
    --create
    -c
    Operación Crea un nuevo archivo.
    --list
    -t
    Operación Enumera el contenido de un archivo.
    --extract
    -x
    Operación Extrae uno o más elementos de un archivo.
    --append
    -r
    Operación Agrega archivos a un archivo existente.
    --concatenate
    -A
    Operación Agrega archivos a un archivo existente.
    --compare
    --diff
    -d
    Operación Compara miembros del archivo con archivos en el sistema.
    --delete Operación Elimina un miembro del archivo.
    --update
    -u
    Operación Actualiza el archivo con archivos nuevos solo si no están en el archivo y son más nuevos que los archivos existentes.
    --file=<archive>
    -f <archive>
    Opción Especifica el archivo.
    -C Opción Cambia el directorio.
    --verbose
    -v
    Opción Muestra el archivo tar funciona mientras se ejecuta.
    --wildcard Opción Representa opciones de búsqueda con comodines.
    --bzip2
    -j
    Opción Leer o escribir archivos comprimidos a través del formato bzip2.
    --gzip
    -z
    Opción Leer o escribir archivos comprimidos a través del formato gzip.
    --xz
    -J
    Opción Leer o escribir archivos comprimidos a través del formato xz.