Infelizmente, para descompactar um único membro de .tar.gz archive, você precisa processar todo o arquivo, e não há muito o que fazer para corrigi-lo.
É aqui que .zip (e alguns outros formatos como .rar ) arquivam muito melhor, porque zip format tem diretório central de todos os arquivos contidos nele com deslocamentos diretos apontando para o meio do zip para que os membros do arquivo possam ser rapidamente extraídos sem processar a coisa toda.
Você pode perguntar por que processar .tar.gz é tão lento?
.tar.gz (geralmente abreviado como .tgz ) é simplesmente .tar archive compactado com gzip compressor. gzip é um compressor de streaming que só pode trabalhar com um arquivo. Se você deseja obter qualquer parte do gzip stream, é necessário descompactá-lo como um todo e é isso que realmente o mata por .tar.gz (e por .tar.bz2 , .tar.xz e outros formatos semelhantes com base em .tar ).
.tar é realmente muito, muito simples. É simplesmente fluxo de arquivo de 512 bytes ou cabeçalhos de diretório (nome, tamanho, etc), cada um seguido pelo conteúdo do arquivo ou do diretório (preenchido para 512 tamanho de bloco com 0 bytes, se necessário). Quando você observar um bloco totalmente nulo 512 para um cabeçalho, isso significa que o final de .tar archive.
Algumas pessoas acham que até .tar membros do arquivo não podem ser acessados rapidamente, mas isso não é bastante verdadeiro. Se o arquivo .tar contiver alguns arquivos grandes, você poderá procurar rapidamente o próximo cabeçalho, e assim você poderá encontrar o membro do arquivo necessário em poucas pesquisas (mas ainda pode exigir tantas buscas quantas forem os membros do arquivo). Se o seu arquivo .tar contiver muitos arquivos minúsculos, isso significa que a recuperação rápida de membros torna-se efetivamente impossível mesmo para .tar não compactados.