Linux - Tar
Tar - Tape ARchive
- Archivador de ficheros
-
(Recopila uno o varios archivos en un solo fichero comprimido)
-
El comando tar crea un archivo .tar que comprime los archivos en uno solo usando como opciones los algoritmos de compresión gzip o bzip2
-
Funciones Básicas
-
Agrupar archivos para guardarlos y para extraerlos después de comprimirlos dependiendo del algoritmo usado reduciendo el tamaño del contenido
-
Respeta los permisos y demás características de los archivos originales
-
Esta disponible en muchas versiones de Linux y en el firmware de Android
-
Se puede utilizar para transferir gran cantidad de archivos de un servidor a otro
-
Para realizar copias de seguridad
Sintaxis básica del comando
# Cuando se añade un guión a cualquier opción "-c" indica que se usa la versión de UNIX
# Cuando no se añade un guión a cualquier opción "c" indica que se usa la versión de GNU/LINUX
← Crear la extensión .tar
↓ ← Crear el archivo añadiendole la extensión .tar
↓ ↓ ← Agregarle más opciones al comando como el tipo de compresión , etc
↓ ↓ ↓ ← Añadir los archivos y directorios que quiero comprimir
↓ ↓ ↓ ↓
tar -c [-f archivo] [opciones] [files...]
Archivación de ficheros mediante algoritmos de compresión
-
En términos generales cada archivo comprimido necesita de su mismo descompresor para poder descomprimirlo
-
Existen varias opciones para la compresión de ficheros en Unix/Linux los cuales se pueden combinar con el archivador tar mediante las opciones del comando
- gzip - Compresor instalado en casi todos los sistemas Linux
- gunzip - Descompresor estandar
- zip - Compresor instalado en casi todos los sistemas Linux
- unzip - Descompresor estandar
- bzip2 - Compresor más eficiente que gzip por ello tarda más en realizar la compresión y consume más CPU
- bunzip2 - Descompresor estandar
- rar - Compresor
- unrar - Descompresor estandar
- gzip - Compresor instalado en casi todos los sistemas Linux
Opciones del comando tar
-
c
- Crear un nuevo archivo con la extensión.tar
-
x
- Extraer archivos comprimidos v
- Muestra los detalles del proceso de compresión/descompresión al ejecutar el comando tar- Es opcional
f
- Asigna un nombre y la extensión al archivo creado- Sin esta opción no se generará el archivo .tar
- Ejemplo :
archivo-comprimido.tar
- Ejemplo :
- Sin esta opción no se generará el archivo .tar
-
t
- Ver el contenido del archivo -
h
- Preservar el enlace simbolo de los archivos tar que se van a generar -
C
- Indica el directorio donde extraer los archivos -
j
- Comprimir archivo a través del algoritmo bzip2 -
z
- Comprimir archivo a través del algoritmo gzip -
r
- Añadir/Actualizar archivos o directorios a los archivos existentes --wildcards
- Permite el uso de comodines UNIX/Linux para el comando tar-
No permite (Expresiones Regulares/Regular expressions)
-
Comodines :
-
?
→ Indica que el patrón coincide con cualquier carácter en la cadena coincidente *
→ Indica que el patrón coincide con cero, uno o más caracteres individuales en la cadena coincidentetar xvf archivos.tar --wildcards '*.php'
→ Extrae todos los archivos que empiezan por .phptar cvf archivos.tar i*
→ Todos los archivos que empiecen por i : i , ii , install , insert , intro ,
[]
→ Introduce la clase de caracteres que es una lista de caracteres aceptables para el siguiente carácter de la cadena correspondiente- Ejemplo : ‘[abcde]’ → Coincidiría con cualquiera de las primeras cinco letras del alfabeto
-
-
Opciones del comando para la compresión
-
t
- Lista el contenido de un archivo comprimido z
- Comprimir con el compresorgzip
- Genera la extensión .gz
j
- Comprimir con el compresorbzip2
- Genera las extensiones .bz2 , .tar.bz2 , .tbz2, .tb2
--exclude
- Se usa para excluir archivos en el proceso de compresión
Ejemplo - Opciones de compresión de ficheros
- Usando la opción
-c
creará un archivo con la extensión .tar que agrupará un conjunto de archivos y directorios el cual le hayamos indicado- El archivo esta sin comprimir lo que significa que no reducirá su peso en memoria
- Se crea un archivo comprimido
.tar
pero no tiene aplicado ninguna reducción de tamaño mediante compresores de archivos
← ← ← ← ← ← ← ←
↓ ↑
tar cvf /path/to/archive.tar /path/to/directory/ # La salida genera un archivo comprimido pero sin algoritmo de compresión : archive.tar
- Crear un archivo .gz usando el algoritmo de compresión gzip
tar zcvf /path/to/archive.tgz /path/to/directory/ # La salida genera el archivo.tgz
- Guarda el contenido de /etc y /var dentro del fichero archivo.tar
← ← ← ← ← ←
↓ ↑ ↑
tar cfp archivo.tar /etc /var # La salida genera el archivo : foo.tar
- Archivar y comprimir todo el directorio /directorio/subdirectorio con el compresor gzip
tar zcfp archivo.tgz /directorio/subdirectorio
- Archivar y comprimir con el compresor bzip2 el directorio /directorio/subdirectorio
tar jcfp archivo.tgz /directorio/subdirectorio
Ejemplo - Crear archivo comprimido .tar sin usar algoritmo de compresión
-
No tiene limite a la hora de agregar archivos a la compresión
-
Solo recopila todos los archivos dentro de uno solo
tar cvf archivo.tar archivo1.extension archivo2.extension archivo3.extension
Ejemplo - Comprimir todo el contenido de un directorio y enviar el archivo comprimido a un directorio concreto
- Copia todo lo que hay dentro del directorio Documentos y lo almacena en el directorio media con el nombre del archivo
backup.tar
o el que le asignemos
← ← ← ← ← ← ← ← ← ← ← ← ← ←
↓ ↑
tar cvf /media/backup.tar /home/usuario/Documentos/
Ejemplo - Añadir archivos o directorios a un archivo tar
- Añadir archivos o directorios al ficheros comprimido con la extensión .tar existente utilizando la opción r (append)
- Añadimos el archivo xyz.txt y el directorio archivo.php al archivo prueba.tar existente.
←←←←←←←←←←
↓ ↓
tar rvf prueba.tar xyz.txt
←←←←←←←←←←←←←
↓ ↓
tar rvf prueba.tar archivo.php
Ejemplo - Concantenar archivos
tar --concatenate --file=prueba.tar archivo.tar
Ejemplo - Listar contenido del archivo comprimido (resumen)
tar tf archivo.tar
Ejemplo - Listar contenido del archivo comprimido tar (detalladamente)
tar tvf archivo.tar
Ejemplo - Comparar archivo comprimido con los archivos que lo componen
- Verificar/Comparar un archivo .tar con los archivos que se han agregado usamos la opción –compare
tar v --compare --file=archivo.tar -C /directorio/subdirectorio-archivos-sin-comprimir/
Ejemplo - Hacer copia de seguridad de los archivos y comprimirlos
- Hacemos una compresión de los archivos y verificamos su contenido
tar cvpWlf /directorio-queremos-comprimir/ /directorio-donde-almacenar-contenido/
Ejemplo - Comprobar el tamaño del archivo fichero
‘.tar ‘ , ‘ tar.gz ‘ y ‘ tar.bz2 ‘
tar czf - archivo.tar | wc -c # 12820480
tar czf - archivo.tar.gz | wc -c # 112640
tar czf - archivo.tar.bz2 | wc -c # 20480
Untar - Descomprimir archivos tar
- Descomprimir/Extraer un archivo .tar solamente emitimos el siguiente comando usando la opción x
tar xvf archivo.tar
- Descomprimir/Extraer todo el contenido del archivo.tar
tar xfp archivo.tar
- Descomprimir/Extraer archivos con el algoritmo
gzip
tar xvf archivo.tar.gz
- Descomprimir/Extraer archivos con el algoritmo
bzip2
tar xvf archivo.tar.bz2
- Descomprimir/Extraer el fichero anterior
tar zxfp archivo.tgz
- Descomprimir/Extraer en un directorio especifico indicado mediante la opción
-C
tar xvf archivo.tar -C /home/usuario/videos/
- Descomprimir/Extraer un archivo especifico desde un archivo tar en Linux
--extract
→ Opción para descomprimir un archivo--file=
→ Opción para especificar el archivo especifico
tar xvf --file=script.sh.tar script.sh
# Otra forma más precisa
tar --extract --file=script.sh.tar script.sh
- Descomprimir/Extraer un archivo especifico desde un archivo tar.gz en Linux
--extract
→ Opción para descomprimir un archivo--file=
→ Opción para especificar el archivo especifico
tar zxvf archivo.tar.gz archivo.xml
# Otra forma más precisa
tar --extract --file=archivo.tar.gz archivo.xml
- Descomprimir/Extraer un archivo especifico desde un archivo tar.bz2 en Linux
tar jxvf archivo.tar.bz2 home/php/index.php
# Otra forma más precisa
tar --extract --file=archivo.tar.bz2 /home/php/index.php
/home/php/index.php # Salida
- Descomprimir/Extraer varios archivos de tar, tar.gz y tar.bz2
- Para extraer múltiples ficheros del archivo tar, tar.gz y tar.bz2
- Ejemplo : el siguiente comando extraerá el “archivo 1” y el “archivo 2” del archivo.
- Para extraer múltiples ficheros del archivo tar, tar.gz y tar.bz2
tar xvf archivo.tar "archivo1" "archivo2"
tar zxvf archivo.tar.gz "archivo1" "archivo2" # Algoritmo de compresión gzip
tar jxvf archivo.tar.bz2 "archivo1" "archivo2" # Algoritmo de compresión bzip2
Deja un comentario