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

Respuestas:


34

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

$ tar cf /var/www/site.tar -C /var/www_bak/ site

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.