2009-03-16 14 views
8

Ho cercato di capire un modo per rendere wget solo creare un file se la risposta effettiva download è valido, ciò significa che nessun codice 404 o 500 di stato, solo 200.Crea file solo se lo stato HTTP 200 con wget?

Tuttavia, quando si utilizza l'opzione -O (per specificare il nome del file) creerà sempre il file, con il contenuto della pagina di errore, e non ho trovato un modo per specificare che dovrebbe ignorarlo se riceve un'intestazione di risposta 404.

Devo controllare il codice di uscita e convogliare l'uscita oppure esiste un'alternativa migliore?

risposta

13

Forse questa è l'unica risposta, diversa patch wget (un'opzione valida): abbastanza

wget -O somefile.html http://example.com/ || rm somefile.html 
+0

Buono, funziona per me. Grazie mille! – jishi

+1

Buona soluzione. Anche se potrei avere qualcosa da aggiungere: ho un problema se il file di output esiste - wget non è in grado di scaricare il file esiste già e restituisce un errore, che esegue il 'rm' e rimuove il file. L'esecuzione della linea si alterna tra il download e la rimozione del file. – Jervelund

Problemi correlati