Como passar um arquivo que muda o nome para outro comando no Bash?

4

Freqüentemente uso o wget para fazer download de tarballs e arquivos zip da web, e depois descompacte-os ou arraste-os. Eu faço:

wget google.com/somefile.zip
unzip somefile.zip
rm somefile.zip

Existe uma maneira de eu passar automaticamente o arquivo zip para tar ou descompactar WHILE wget-ting? No pseudocódigo:

wget google.com/somfile.zip && unzip
    
por n0pe 09.06.2011 / 16:32

3 respostas

7

Você poderia evitar o uso de arquivos intermediários e o problema desapareceria

wget -O - http://example.com/file.zip | funzip
    
por 09.06.2011 / 16:39
1
MYFILE=filename; wget google.com/${MYFILE} && unzip ${MYFILE} && rm -f ${MYFILE}
    
por 09.06.2011 / 16:37
0

Ambas as respostas aqui funcionam, e a resposta do @RedGrittyBrick elimina o arquivo temporário que você exclui de qualquer maneira (eu aceito o dele). Eu adicionarei outro jeito.

Você pode fazer manipulação de string nas variáveis usadas para o URL para obter a saída arquivo.

URL=google.com/somefile.zip
wget $URL
FILE=${URL##*/} # strip everything up to last /
unzip $FILE
rm -f $FILE
    
por 09.06.2011 / 16:57