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

11

Se eu tiver um arquivo .tar , e quando extraí-lo, ele me fornecerá uma única pasta foo contendo mais algumas coisas, como esta:

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

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

something.txt
another.txt
bar/
  something-else.txt
    
por callum 09.04.2015 / 18:29

1 resposta

13

Fácil. Apenas use --strip-components=1 no arquivo assim:

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

E, conforme explicado na página oficial do tar :

--strip-components=NUMBER

strip NUMBER leading components from file names on extraction

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

    
por 09.04.2015 / 18:38