Je pense que l'option -f
-curl
fait ce que vous voulez:
-f
, --fail
(HTTP) Fail silently (no output at all) on server errors. This is mostly done to better enable scripts etc to better deal with failed attempts. In normal cases when an HTTP server fails to deliver a document, it returns an HTML document stating so (which often also describes why and more). This flag will prevent curl from outputting that and return error 22. [...]
Cependant, si la réponse était en fait un 301 ou 302 redirect, qui obtient encore sauvé, même si sa destination entraînerait une erreur :
$ curl -fO http://google.com/aoeu
$ cat aoeu
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/aoeu">here</A>.
</BODY></HTML>
pour suivre la redirection à son impasse, donne également l'option -L
:
-L
, --location
(HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. [...]
Pour autant que je peux voir est la seule octobre personne qui a réellement lu la question et a répondu. Tout le monde vous a donné des techniques qui ne téléchargeraient jamais rien, ou ils ont dit de rouler les vôtres. Ne devriez-vous pas accepter la seule réponse * réelle * qui vous a été donnée? – iconoclast