Extraia arquivos específicos em um arquivo tar usando um curinga

Extraia arquivos específicos em um arquivo tar usando um curinga

Estou tentando criar um script para extrair apenas imagens JPEG de um arquivo contendo vários tipos de arquivos.

Para fazer isso, tentei usar:

   tar -xf MyTar.tar *.jpg

mas falhou (*.jpg não encontrado) e sugiro que eu use "--wildcard". Então eu tentei

tar -xf MyTar.tar --wildcard *.jpg

Eu fiz isso, mas apareceu o mesmo erro e um aviso diferente me dizendo que a opção "--wildcard" é ambígua.

Examinei as páginas de manual do tar, mas não encontrei nenhuma pista sobre o problema.

Responder1

No final, encontrei a resposta depois de um bom intervalo. A opção é curingaé, plural...

Então o comando

tar -xf MyTar.tar --wildcards "*.jpg"

fiz exatamente o que eu precisava.

Responder2

Coloque aspas ao redor do curinga assim "*.jpg"para que o shell não tente expandi-lo e, em vez disso, passe-o diretamente para o tar. Você deseja que tar avalie o curinga, não o shell e as aspas fazem isso.

Responder3

Para algumas versões mais antigas do tar, o seguinte é extraído deo arquivo "homem":

Os curingas de substituição de nome de arquivo não podem ser usados ​​para extrair arquivos do arquivo. Em vez disso, use um comando no formato:

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `

informação relacionada