tar - Eliminar los componentes de directorio principales en la extracción

104

¿Cómo puede extraer solo el directorio de destino y no el árbol de directorios completo?

comprimir

tar cf /var/www/site.tar /var/www_bak/site

extraer

tar xf /var/www/site.tar -C /tmp

Esto producirá:

/tmp/var/www/site

¿Cómo es posible evitar que se cree todo el árbol de directorios cuando se extrae el archivo?

Lo que quiero que extraiga a:

/tmp/site
clarkk
fuente

Respuestas:

34

¿Por qué no usar la -Copción al crear:

$ tar cf /var/www/site.tar -C /var/www_bak/ site
quanta
fuente
1
TMTOWTDI. Eso también funcionaría, usando la misma -Copción;)
MikeyB
12
Quiere quitar la ruta de algunos componentes principales, no cambiar el directorio de salida. Vea a continuación la respuesta correcta.
aymericbeaumet
44
No podemos usarlo cuando alguien más prepara el archivo.
Porque `` `_t = prefijo - $ (fecha +% Y% m% d); tar -cjf ".backups / $ _ t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" - archivos ...; tar -df ".backups / $ _ t.tar.bz2" --strip-components = 1 `` `
AnrDaemon
258

Desea usar la --strip-components=NUMBERopción de tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

Su comando sería:

tar xfz /var/www/site.gz --strip-components=2 -C /tmp
MikeyB
fuente
19
Esta respuesta es mejor porque no tiene que pensarlo antes de la creación del alquitrán. Puede usarlo con un archivo tar ya creado. Gracias @MikeyB!
Fabien Quatravaux
44
Me complace informar que esto funciona tanto en el alquitrán GNU como en el alquitrán BSD.
Nathan Osman
44
y porque puede que no seas el creador del alquitrán ... (o si lo estás haciendo con otra herramienta y esa herramienta hace cosas tontas ...)
xenoterracide
Sin embargo, es posible que aún le falte el --strip-componentsindicador si está utilizando la implementación de busybox incrustado tar.
sylvainulg
1
@FabienQuatravaux Bueno, sí --- si cometió un error y creó un archivo que incluye los principales directorios que no desea ver durante la extracción. Pero es más claro construir el archivo sin los principales directorios indeseables en primer lugar.
Calaf