Aqui está um script que irá extrair um arquivo tar.gz de nível superior (My_Tar.tar.gz) para $ NEWDIR, depois percorrer o conteúdo extraído e extrair quaisquer arquivos tar descobertos em diretórios baseados nesses nomes de arquivos tar. Se os arquivos tar aninhados foram criados 'acima' de seu conteúdo (para que, por exemplo, Nested_Tar.tar tenha "Nested_Tar /" como um subdiretório já), você poderá pular a parte mkdir
abaixo, bem como a -C "$d"
opção para o interior tar
.
NEWDIR=output
tar -xz -C $NEWDIR -f ../My_Tar.tar.gz
(cd $NEWDIR;
for f in *.tar
do
d=$(basename "$f" .tar)
mkdir "$d" && tar -x -C "$d" -f "$f"
done
)
Eu usei um subshell apenas para manter o pwd do seu shell existente no cwd; se você preferir acabar dentro de $ NEWDIR, apenas remova os parênteses externos.