creo que la opción -f
-curl
hace lo que quiere:
-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. [...]
Sin embargo, si la respuesta era en realidad un 301 o 302 de redirección, que todavía es salvo, incluso si su destino daría lugar a un error :
$ 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>
para seguir la redirección a su salida, también dará la opción -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. [...]
Por lo que yo puedo ver OCT es la única persona que realmente leer la pregunta y contestó. Todos los demás te dieron técnicas que * nunca * descargarían nada, o dijeron que hicieras tu propio. ¿No debería aceptar la única respuesta * real * que le dieron? – iconoclast