try another color:
try another fontsize: 60% 70% 80% 90%
Core dump
Un repositorio de mis ideas

Uso de tar

toc_collapse=0;

Introducción

Tar ( t ape ar chive) se refiere a dos cosas: Una es un formato que se desarrolló hace mucho tiempo, en los inicios de UNIX con el fin de facilitar los respaldos en cinta. Para ello junta muchos archivos en uno solo, conservando su estructura de directorios y permisos entre otras cosas.
Otra es el programa que se encarga de trabajar con archivos en formato tar.
Actualmente su funcionalidad se ha extendido más allá del respaldo en cinta, agregando compresión (bzip2, gzip, etc) o pudiendo dirigir la salida a dispositivos, programas, otros archivos, etc.
Un uso popular es que prácticamente todo el código fuente que se distribuye está en un formato .tar.gz .

Compresión

Dentro de los tipos de archivo que puede manejar tar, se encuentran:

  • .tar: sin compresión, sólo agrupa archivos en uno solo.
  • .tar.gz: archivo comprimido con gzip
  • .tar.bz2: archivo comprimido con bzip2
  • .tar.lzma: archivo comprimido con lzma

Para elegir cual usar, se debe pasar un parámetro que indique el método de compresión.
La comparación entre los diferentes métodos de compresión escapa del tema del uso de esta guía

Crear un archivo

Si se revisa el manual de tar (man tar) se puede obtener una lista de todos los parámetros que se pueden pasar
Una versión en línea se encuentra acá (en inglés)
Sin embargo las opciones que son usadas más frecuentemente son para creación de archivos son :

  • -c : crea un archivo
  • -r : agrega archivos a un .tar(o .tar.*) ya existente,sin embargo no sirve para archivos .tar comprimidos
  • -f : especifica el nombre de un archivo de salida
  • -w : permite renombrar los archivos interactivamente, si se desea que tengan un nombre distinto al original en el archivo resultante.
  • -j : Comprime usando bzip2
  • -z : Comprime usando gzip
  • -Z : Comprime usando compress
  • --lzma : Comprime usando lzma
  • --lzop : Comprime usando lzop
  • -v : muestra por pantalla lo que se está procesando

La sintaxis básica de tar es:

  1. tar (opciones) (nombre_de_archivo_resultante) (nombre_de archivos_a_comprimir)

Como es de esperarse la opción necesaria es -c. Así si tenemos dos archivos, digamos 1.gif, 2.gif y una carpeta que se llame fotos, podemos hacer lo siguiente:

Creamos un .tar así:

  1. tar -cf imagenes.tar 1.gif 2.gif fotos

Lo que nos dará como resultado imagenes.tar.
Si queremos agregar un archivo 3.gif a imagenes.tar hacemos:

  1. tar -rf imagenes.tar 3.gif

Si queremos agregar compresión, por ejemplo usando gzip. Hacemos:

  1. tar -cfz imagenes.tar.gz 1.gif 2.gif fotos

Tambien podemos usar comodines para ahorrarnos mucho trabajo en carpetas con muchos archivos. Si quisieramos hacer un archivo comprimido con bzip2 (por ejemplo) y que sólo contenga archivos .gif hacemos:

  1. tar -jcf imagenes.tar *.gif

Incluso podemos fusionar (concatenar)archivos .tar para evitar tener que desempaquetarlos y reempaquetarlos. Por ejemplo si tenemos dos archivos 1.tar y 2.tar, los unimos así:

  1. tar --concatenate -f 1.tar 2.tar

Así 1.tar contará con el contenido de 2.tar

Extracción de un archivo

  • -t : lista el contenido de un archivo
  • -x : extrae un archivo
  • -v : muestra por pantalla lo que se está procesando

Si queremos extraer los contenidos de un archivo 1.tar en el directorio actual. El comando es:

  1. tar -xf 1.tar

Para archivos comprimidos en teoría basta con usar el comando anterior, sin embargo podemos especificar la compresión que se usó par amayor seguridad. POr ejemplo para un archivo 1.tar.gz, lo extraemos como:

  1. tar -xzf 1.tar.gz

Si sólo queremos extraer un archivo del .tar, agregamos al final del comando el archivo que deseamos. Por ejemplo para extraer readme.txt de 1.tar, hacemos:

  1. tar -xzf 1.tar readme.txt

Si en vez de extraer los archivos, sólo queremos listarlos, usamos:

  1. tar -tf 1.tar

La opción -v (tanto para crear como para extraer) sirve para que el programa muestre uno por uno los archivos que va procesando y a que directorio se extraen o bien cuales se agregan al paquete. Así:

  1. tar -xvzf 1.tar.gz

retornará

  1. 1.gif
  2. 2.gif
  3. 3.gif
  4. /fotos/1.jpg

Una opción interesante es -C, la cual permite establecer un directorio de salida para los archivos extraidos para así evitar tener que copiar el .tar respectivo a la carpeta de destino. Un ejemplo práctico es descomprimir el código fuente del kernel. El código fuente del kernel 2.6.27.7 es linux-2.6.27.7.tar.bz2. Si queremos descomprimirlo en /usr/src, usamos :

  1. tar -C /usr/src -xjf linux-2.6.27.7.tar.bz2

Borrado de archivos

Uno puede borrar archivos que estén dentro de un paquete tar (sin compresión) usando --delete. Por ejemplo para borrar 1.gif de el archivo imagenes.tar:

  1. tar --delete -f imagenes.tar 1.gif