Uso del comando tar en Linux

Primeros usos de tar y gzip (empaquetar archivos y comprimir)

tar «empaqueta» sin comprimir, y gzip comprime sin empaquetar

Cómo funciona tar por defecto:

  • *SIEMPRE* es recursivo (incluye subdirectorios y su contenido)
  • Al desempaquetar asigna el owner/group del usuario que lo ejecuta
  • Quita a los path absolutos el «/» inicial

Cómo funciona gzip por defecto:

  • Sustituye el archivo original por uno comprimido con extensión *.gz

EMPAQUETAR Y COMPRIMIR UN DIRECTORIO:

  • Incluyendo el directorio en el tar.gz

tar -cvzf archivo.tar.gz directorio # comprime usando gzip

O en dos pasos:

tar -cvf archivo.tar directorio # almacena ruta relativa
gzip archivo.tar # esto convierte a archivo.tar.gz

  • Solo el contenido del directorio:

cd dir; tar -cvzf ../archivo.tar.gz *

DESEMPAQUETAR DESCOMPRIMIENDO:

  • Línea de comandos:

tar -xvzf archivo.tar.gz # x=extraer

O también:

gunzip -c archivo.tar.gz | tar -xvf- # en gzip c=to_stdout

Puedes «entrar» en el *.tar.gz con el gestor de archivos «mc» y copiar

  • Para extraer en otro lugar (p.ej.: en / ):

cd /; tar -xvzf /ruta/archivo.tar.gz

VER CONTENIDO:

tar -tf archivo.tar # Si no esta comprimido
tar -tzf archivo.tar.gz # Si esta comprimido

ALGUNAS OPCIONES DE TAR:

c = crear
x = extraer
t = listar

z = usar gzip/gunzip
I = usar bzip2/bunzip2 (comprime algo mas pero es *MAS* lento que gzip)

v = verboso (muestra nombres de archivos)
vv = mas verboso (parecido a «ls -l»)
f = usar_archivo, si no se pone f el dispositivo que se emplea depende de la compilación (en slink parece ser stdin/stdout) pero no puede generalizarse, así que para usar stdin/stdout especificar f-

–owner=NOMBRE = forzar NOMBRE como propietario a los archivos añadidos
–group=NOMBRE = forzar NOMBRE como grupo a los archivos añadidos
–same-owner = mantener propietario de archivos (llamando a chown en cada archivo al extraer)

?p = preservar permisos al extraer, en vez de usar umask (ya lo hace?)

W = verificar tras crear (solo si no se usa compresión)
? M = multivolumen (si se envia p.e.: a /dev/fd0) solo si no compresión

P = paths absolutos (no quitar el / inicial)

MÁS AYUDA:

tar –help Da un resumen de comandos ordenados en secciones
info tar Info de tar «a fondo»
man tar
man gzip
man bzip2