Isso deve funcionar:
mkdir pretty_name && tar xf ugly_name.tar -C pretty_name --strip-components 1
-C
muda para o diretório especificado antes de descompactar (ou embalagem). --strip-components
remove o número especificado de diretórios dos nomes de arquivos armazenados no archive.
Note que isso não é realmente portátil. O tar GNU e pelo menos alguns dos tars BSD têm a opção --strip-components
, mas parece não existir em outras plataformas semelhantes a unix.
A maneira estúpida de fazer isso funcionaria praticamente em todos os lugares embora.
tar xf ugly_name.tar && mv ugly_name pretty_name