Como descompactar um arquivo sem a pasta raiz, mas mantendo a hierarquia completa dentro dele?

25

Se eu tenho um .tararquivo, e quando o extraio, ele me dá uma única pasta foocontendo mais algumas coisas, como esta:

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

Existe uma maneira de modificar o .tarcomando para "pular" a pasta raiz ( fooneste caso) e apenas extrair todo o conteúdo dessa pasta diretamente no meu cwd assim:

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

Respostas:

29

Fácil. Basta usar --strip-components=1no arquivo como este:

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

E como explicado na tarpágina de manual oficial :

--strip-components = NUMBER

tira NUMBER componentes principais dos nomes de arquivo na extração

Com a lógica de que, se um caminho consistir em foo/something.txt, o primeiro "componente" desse caminho seria foo/assim --strip-components=1efetivamente eliminaria foo/o caminho foo/something.txt.

JakeGould
fonte