Como solicito um arquivo, mas não o salvo com o Wget? [fechadas]

140

Estou usando o Wget para fazer solicitações de HTTP para um servidor Web novo. Estou fazendo isso para aquecer o cache do MySQL. Não quero salvar os arquivos depois que eles forem servidos.

wget -nv -do-not-save-file $url

Posso fazer algo parecido -do-not-save-filecom o wget?

T. Brian Jones
fonte
3
Esta é uma pergunta melhor para Superusuário ou Unix.SE.
Matt Bola
4
como desenvolvedor, quero testar um servidor com o wget e que essa pergunta está seriamente no tópico. Como on-topic melhor resposta tem 142 positivas votos, assim que esta questão deve ser reativado como on-topic
Mladen Adamovic
Como alternativa a -q e -O, use os sinalizadores -nd (sem diretório) e --delete-after.
Suzana
1
De acordo com o documento de ajuda (wget -h), você pode usar a opção --spider para pular o download (versão 1.14).
Qi rochoso #

Respostas:

257

Use o qflag para o modo silencioso e diga wgetpara output para stdout com O-(o maiúsculo) e redirecione para /dev/nullpara descartar a saída:

wget -qO- $url &> /dev/null

>redireciona a saída do aplicativo (para um arquivo). se >for precedido por e comercial, o shell redirecionará todas as saídas (erro e normal) para o arquivo à direita de >. Se você não especificar e comercial, somente a saída normal será redirecionada.

./app &>  file # redirect error and standard output to file
./app >   file # redirect standard output to file
./app 2>  file # redirect error output to file

se o arquivo for /dev/null, tudo será descartado.

Isso também funciona e é mais simples:

wget -O/dev/null -q $url
perreal
fonte
o que o e comercial e maior que fazem neste comando? você pode simplesmente canalizar a saída para / dev / null ... wget -qO- | / dev / null ...?
22712
Eu tentei isso e não funcionou para mim. Pelo que descobri, o e comercial deveria vir depois do símbolo maior que.
Tiago Espinha
7
Para usuários do Windows: wget -q -O NUL http: // ... Desativa o log e encaminha o download para NUL (o mesmo que / dev / null)
vidario
wget --spider $ url Faz isso.
thebugfinder
1
wget -O / dev / null $ url
Storm
43

O Curl faz isso por padrão, sem nenhum parâmetro ou sinalizador, eu o usaria para seus propósitos:

curl $url > /dev/null 2>&1

Curl é mais sobre fluxos e o wget é mais sobre sites de cópia com base nessa comparação .

Oleg Mikheev
fonte
1
Frio, você explica o que 2> & 1 significa? Eu recebo> mas por que o fim?
apscience
2
@gladoscc primeiro >/dev/nullredireciona std out para / dev / null ( >/dev/nullé a abreviação de 1>/dev/null), o segundo redireciona std err para std out.
9119 Oleg Mikheev
@apscience Apenas para adicionar. O descritor de arquivo para std out é 1. Os shells assumem std out quando você deixa o descritor fora de um redirecionamento. Então >fooé interpretado como 1>foo. Quando &segue um redirecionamento, ele instrui o shell a redirecionar o descritor de arquivo anterior para a mesma saída que a posterior. Nesse caso, 2>&1diz redirecionar o descritor de arquivo 2 (std err) para o mesmo local que o descritor de arquivo 1 (std out). Como o std out já está redirecionado para / dev / null, o std err também será redirecionado para lá. Você também pode escrever: 1>/dev/null 2>/dev/nullou 2>/dev/null >&2.
Ktbiz
Esta resposta está correta, mas inclui o mesmo redirecionamento de saída que a resposta escolhida. Simplesmente correr curl http://www.example.comé suficiente.
Aaron Cicali 11/07
40

Você pode usar -O-(o maiúsculo) para redirecionar o conteúdo para o stdout (saída padrão) ou para um arquivo (mesmo arquivos especiais como /dev/null /dev/stderr /dev/stdout)

wget -O- http://yourdomain.com

Ou:

wget -O- http://yourdomain.com > /dev/null

Ou: (mesmo resultado que o último comando)

wget -O/dev/null http://yourdomain.com
Marco Biscaro
fonte
Thx, funciona no Windows também.
Pyjong 29/08/13
Obrigado, o direct-to- / dev / null foi inteligente e, portanto, a resposta correta: Eu quero a "saída de estatísticas", mas não o conteúdo.
Stolsvik