Use -C
e --strip-components
(consulte man tar
).
Exemplo:
mkdir FOLDER
# for remote tar file
curl -L ’remote_tar_file' | tar -xz - -C FOLDER --strip-components=1
# for local tar file
tar -xz FILENAME -C FOLDER --strip-components=1
Explicação:
O sinalizador C
assume que um diretório já está no lugar, portanto, o conteúdo do arquivo tar pode ser expandido nele. daí o mkdir FOLDER
.
O strip-components
flag é usado quando um arquivo tar se expande naturalmente para uma pasta, digamos, como o github, onde ele é um exemplo para a pasta repo-name-master
. É claro que você não precisaria da pasta de primeiro nível gerada aqui, então strip-components
definido como 1
removeria automaticamente a primeira pasta para você. Quanto maior o número definido, as pastas nester mais profundas serão removidas.