Funcionamiento del comando Tar

El comando tar es utilizado normalmente para empaquetar o desempaquetar ficheros, empaquetar significa guardar en un único fichero una lista de varios ficheros, o el contenido de todo un directorio (o varios directorios). Aunque también es un comando muy potente para realizar copias locales y remotas de ficheros y directorios.

En este artículo explicaremos el funcionamiento del comando tar y algunos ejemplos.

Sintaxis

El formato del comando tar es:

tar [opciones] [fichero1][fichero2]...[ficheroN]

Donde es la lista de opciones y hasta es la lista de ficheros a añadir o extraer del archivo.

En las opciones de tar hay algunas que son importantes para su uso :

  • c: Crea un nuevo archivo tar.
  • v: Modo verbose, quiere decir que mostrará por pantalla las operaciones que va realizando archivo por archivo, si no se pone esta opción ejecutará la acción pero en pantalla no veremos el proceso.
  • x: Extrae los archivos (Descomprime los ficheros que se encuentran dentro del archivo tar).
  • t: Nos muestra el contenido del archivo tar. Esto es cuando tu deseas saber que es lo que contiene ese archivo sin necesidad de desempaquetarlo.
  • p: Mantiene los permisos originales de los archivos.
  • f: Cuando se usa con la opción -c, usa el nombre del archivo especificado para la creación del archivo tar; cuando se usa con la opción -x, retira del archivo el archivo específico.
  • z: Comprime el archivo tar con gzip.
  • j: Comprime el archivo tar con bzip2.

 

A continuación se mostraran algunos ejemplos.

Comprimir tar.gz

tar -cf - ES| gzip -c > ES.tar.gz


Copiar un directorio

Podemos utilizar el comando tar cuando queremos copiar un directorio y/o filesystem entero y conservar el ownership, permisos y timestamps.

cd /<source directory>
tar -cf - * | (cd /<target directory>;tar -pxf -)

Ejemplo:

cd /tmp/root/system/usr
tar -cf - *|(cd /tmp/root/system/root/usr;tar -pxf -)

 

Copiar por ssh

cd /tmp; ssh SERVIDOR tar -cvf - /opt/apache-2.2 | tar -xvf -