¿Cómo descomprimir un archivo sin la carpeta raíz, pero manteniendo la jerarquía completa dentro de él?

25

Si tengo un .tararchivo y cuando lo extraigo, me da una sola carpeta que foocontiene más cosas, como esta:

foo/
  something.txt
  another.txt
  bar/
    something-else.txt

¿Hay alguna manera de modificar el .tarcomando para "omitir" la carpeta raíz ( fooen este caso) y simplemente extraer todo el contenido de esa carpeta directamente en mi cwd de esta manera:

something.txt
another.txt
bar/
  something-else.txt
callum
fuente

Respuestas:

29

Fácil. Solo use --strip-components=1en el archivo de esta manera:

tar -xf archive.tar --strip-components=1

Y como se explica en la tarpágina de manual oficial :

--strip-components = NUMBER

eliminar NUMBER componentes principales de los nombres de archivo en la extracción

Con la lógica de que si una ruta consta de, foo/something.txtentonces, el primer "componente" de esa ruta sería foo/así --strip-components=1que efectivamente se eliminaría foo/de la ruta foo/something.txt.

JakeGould
fuente