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

Voran
fonte
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 / )
Daniel Beck
fonte
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
user1794469
fonte
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