para extrair um único arquivo chamado zipfile.zip do arquivo tarfile.tar:
tar xvf /path/to/tarfile.tar /path/to/where/you/want/zipfile.zip
Você pode usar o perl para reciclar
#!/usr/bin/perl
my @directories_to_search = ('/root/path/to/s3/dir/');
use File::Find;
use File::Basename;
finddepth(\&extract_zip, @directories_to_search);
sub extract_zip {
return unless /tar$/; # ignore all but tar files
my $tarname = $File::Find::name;
'tar xvf "$tarname" /desired/path/name-of-zip-inside-archive.zip';
}
Algo muito próximo ao acima deve funcionar. (testado no El capitan). O problema que você pode ter é se o nome do arquivo zip é diferente em cada arquivo TAR. Se for, você precisará se apossar do nome do zip dentro do tar antes de extrair (ou se houver uma correspondência de padrão, por exemplo, * .zip, você pode tentar isso)