La utilidad es simple y tiene muchas opciones útiles para comprimir archivos, administrar copias de seguridad o extraer una instalación sin formato.
1. Estilo tradicional , agrupados sin guiones.
2. Estilo de opción abreviada de UNIX , usando un solo guión y opciones agrupadas:
3. Estilo de opción larga de GNU con un guión doble y un nombre de opción descriptivo:
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. |
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.