O link que você publica dá a resposta "correta", na minha opinião. Apenas desovar uma concha. Sem fazer isso, você não terá uma caixa de ferramentas grande o suficiente. Você poderia construir um comando find em pseudocódigo como:
find /path -criteria -exec mkdir {} \; -exec extract {} \; -exec rm {} \;
Isto irá parar em qualquer erro, pois os predicados são naturalmente e juntos. Mas, isso lhe dá controle insuficiente sobre a nomeação do diretório. É garantido que falhará.
Gerar um shell resolve isso, pois você terá toda a linguagem shell ao seu alcance:
find /path -criteria -exec /bin/sh '
for d; do
mkdir "${d##*/}" && tar xvf "$d" && rm "$d"
done' _ {} +
Note que esta versão tem o efeito colateral de continuar com um erro para qualquer iteração do loop - ele gera um único shell para os resultados all . Eu sugiro a desova do shell com o sinalizador -e se você quiser parar com qualquer erro.