tar xvf com * falhou em alguma plataforma como o HP-UX ou o SuSE


0

tar xvf archive.tar *.txt falhou no HP-UX e no SuSE.

Como posso extrair apenas arquivos correspondentes *.txtpara um arquivo tar? Eu poderia usar --wildcards no SuSE, mas isso não funciona no HP-UX

Estou no HP-UX 11iv2 (11.23) no HP ia64 e SuSE SLES 11 atualização 3

obrigado


Qual versão do HP-UX exatamente? O argumento está procurando por um nome de pasta e não por um nome de arquivo. Eu uso o comando o tempo todo com curingas para compactar tudo em uma pasta.
Ramhound

É HP-UX 11iV2 (11.23)
quinta

O verdadeiro problema é que o tar não pode gerenciar o nome do arquivo com o caractere "*". Parece que não especificamente um problema de tar do GNU porque eu tinha o mesmo com o GNU tar no SuSE SLES 11 update 3
Voran

Bem, eu não posso ajudar desde que eu estou usando uma versão totalmente diferente do HP-UX, então você é.
Ramhound

1
Funciona se você colocar *.txtaspas tar xvf archive.tar '*.txt'?
Adaephon

Respostas:


0

tar tlista o conteúdo do arquivo. Então, o seguinte pode funcionar, assumindo bashe sem espaços em caminhos de arquivo:

tar xf archive.tar $( tar tf archive.tar | grep '.txt$' )

Não recursivo:

tar xf archive.tar $( tar tf archive.tar | grep '.txt$' | grep -v / )

0

que tal:

find . -name '*.txt' | xargs tar xvf archive.tar

Eu infelizmente não tenho as máquinas para testar isso.

Edit: oops, isso foi idiota de mim. Talvez isso seja melhor:

tar tf archive.tgz | grep '.txt$' | xargs tar xzf archive.tgz

tar xextrai, então ter exatamente os mesmos arquivos em volta (o que é necessário para find) parece um caso de uso muito especial.
Daniel Beck
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.