Come posso richiedere un file ma non salvarlo con Wget? [chiuso]


140

Sto usando Wget per effettuare richieste HTTP a un nuovo server Web. Lo sto facendo per riscaldare la cache di MySQL. Non voglio salvare i file dopo che sono stati serviti.

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

Posso fare qualcosa di simile -do-not-save-filecon wget?


3
Questa è una domanda migliore per Super User o Unix.SE.
Matt Ball,

4
come sviluppatore voglio testare un server con wget e questa domanda è seriamente in discussione. Poiché la migliore risposta sull'argomento ha ottenuto 142 voti positivi, questa domanda dovrebbe essere riattivata come sull'argomento
Mladen Adamovic,

In alternativa a -q e -O, usa i flag -nd (nessuna directory) e --delete-after.
Suzana,

1
Secondo il documento di aiuto (wget -h), puoi usare l'opzione --spider per saltare il download (versione 1.14).
Rocky Qi

Risposte:


257

Utilizzare qflag per la modalità silenziosa e dire wgetall'output di stdout con O-(maiuscola o) e reindirizzare a /dev/nullper eliminare l'output:

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

>reindirizza l'output dell'applicazione (su un file). se >è preceduto da e commerciale, la shell reindirizza tutte le uscite (errore e normale) al file giusto >. Se non si specifica la e commerciale, viene reindirizzato solo l'output normale.

./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 il file è /dev/nullquindi tutto viene scartato.

Funziona anche così, e più semplice:

wget -O/dev/null -q $url

cosa fanno la e commerciale e maggiore di quanto fanno in questo comando? puoi semplicemente reindirizzare l'output a / dev / null ... wget -qO- | / dev / null ...?
T. Brian Jones,

Uh, ho provato questo e non ha funzionato per me. Da quello che ho scoperto, la e commerciale dovrebbe venire dopo il simbolo maggiore di.
Tiago Espinha,

7
Per utenti Windows: wget -q -O NUL http: // ... Disattiva la registrazione e il download dei percorsi su NUL (uguale a / dev / null)
vidario

wget --spider $ url Lo farà.
thebugfinder,

1
wget -O / dev / null $ url
Storm

43

Curl lo fa di default senza parametri o flag, lo userei per i tuoi scopi:

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

Curl è più sugli stream e wget è più sulla copia dei siti sulla base di questo confronto .


1
Freddo spieghi cosa significa 2> & 1? Ottengo> ma perché la fine?
apscience

2
@gladoscc >/dev/nullreindirizza prima std su / dev / null ( >/dev/nullè l'abbreviazione di 1>/dev/null), il secondo reindirizza std err su std out.
Oleg Mikheev,

@apscience Solo per aggiungere. Il descrittore di file per std out è 1. Le shell assumono std out quando si interrompe il descrittore da un reindirizzamento. Così >fooviene interpretato come 1>foo. Quando &segue un reindirizzamento, indica alla shell di reindirizzare il precedente descrittore di file allo stesso output del successivo. In questo caso, 2>&1dice reindirizzare il descrittore di file 2 (std err) nella stessa posizione del descrittore di file 1 (std out). Poiché std out è già reindirizzato a / dev / null, anche lo std err verrà reindirizzato lì. Puoi anche scrivere: 1>/dev/null 2>/dev/nullo 2>/dev/null >&2.
ktbiz

Questa risposta è corretta, ma include quindi lo stesso reindirizzamento dell'output della risposta scelta. Basta correre curl http://www.example.comè sufficiente.
Aaron Cicali,

40

È possibile utilizzare -O-(maiuscola o) per reindirizzare il contenuto sullo stdout (output standard) o su un file (anche file speciali come /dev/null /dev/stderr /dev/stdout)

wget -O- http://yourdomain.com

O:

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

Oppure: (stesso risultato dell'ultimo comando)

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

Grazie, funziona anche su Windows.
Pyjong,

Grazie, direct-to- / dev / null è stato intelligente, e quindi la risposta corretta: voglio "output delle statistiche", ma non i contenuti.
Stolsvik,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.