Tl; dr
Como você já está em /tmp , é possível descartar a opção -C (já que por padrão tar extrairá arquivos no diretório de trabalho atual) e apenas --strip-components=2 :
tar --strip-components=2 -xfvz archive.tar.gz folder/in/archive
O GNU tar por padrão armazena os caminhos relativos.
Se um arquivo usa caminhos relativos pode ser verificado executando tar -tf archive | head -n 1 , que irá imprimir o caminho do primeiro arquivo no arquivo; Se o caminho desse arquivo é um caminho relativo, todos os arquivos no arquivo usam caminhos relativos:
% tar -tf bash-4.3.tar.gz | head -n 1
bash-4.3/
Para extrair um único arquivo / pasta de um arquivo que use caminhos relativos sem seus ancestrais em um caminho relativo, você precisará de duas opções: -C e --strip-components=N : no exemplo abaixo, o arquivo bash-4.3.tar.gz usa relativo caminhos e contém um arquivo bash-4.3/doc/bash.html que é extraído em um caminho relativo path ( -C especifica o diretório no qual os arquivos serão extraídos, --strip-components=2 especifica que o pai e o pai do pai dos arquivos extraídos devem ser ignorado, então, neste caso, apenas bash.html será extraído para o diretório de destino):
% tree
.
├── bash-4.3.tar.gz
└── path
1 directory, 1 file
% tar -tf bash-4.3.tar.gz | grep -F 'bash.html'
bash-4.3/doc/bash.html
% tar -C path --strip-components=2 -zxf bash-4.3.tar.gz bash-4.3/doc/bash.html
% tree
.
├── bash-4.3.tar.gz
└── path
└── bash.html
1 directory, 2 files
Então, de volta ao seu comando, como você já está em /tmp , você pode descartar a opção -C (já que por padrão tar extrairá arquivos no diretório de trabalho atual) e apenas --strip-components=2 :
tar --strip-components=2 -xfvz archive.tar.gz folder/in/archive