Vamos supor que você tenha um tarball chamado lotsofdata.tar.gz
e saiba que há apenas um arquivo lá, mas tudo que você pode lembrar é que o nome dele contém a palavra contract
. Você tem duas opções:
Use tar
e grep
para listar o conteúdo de seu tarball para poder descobrir o caminho completo e o nome de todos os arquivos correspondentes à parte que você conhece e use tar
para extrair esse arquivo agora você sabe seus detalhes exatos, ou você pode usar dois switches pouco conhecidos para simplesmente extrair todos os arquivos que correspondem ao pouco que você sabe sobre o seu nome de arquivo - você não precisa saber o nome completo ou qualquer parte de seu caminho para isso. opção. Os detalhes são:
Opção 1
$ tar -tzf lotsofdata.tar.gz | grep contract
Isso listará os detalhes de todos os arquivos cujos nomes contenham sua parte conhecida. Então você extrai o que você quer usando:
$ tar -xzf lotsofdata.tar.gz <full path and filename from your list above>
Você pode precisar de ./
na frente de seu caminho para que ele funcione.
Opção 2
$ tar -xzf lotsofdata.tar.gz --wildcards --no-anchored '*contract*'
Até você que você acha mais fácil ou mais útil.