¿Cómo consigo que cURL no muestre la barra de progreso?
Estoy intentando usar cURL en un script y hacer que no muestre la barra de progreso.
Probé las opciones -s
, -silent
, -S
y -quiet
, pero ninguna funciona.
Aquí hay un comando típico que he probado:
curl -s http://google.com > temp.html
Solo obtengo la barra de progreso cuando la envío a un archivo, por lo que curl -s http://google.com
no tiene una barra de progreso, pero curl -s http://google.com > temp.html
la tiene.
curl -s http://google.com > temp.html
funciona para curl versión 7.19.5 en Ubuntu 9.10 (sin barra de progreso). Pero si por alguna razón eso no funciona en tu plataforma, siempre puedes redirigir stderr a /dev/null:
curl http://google.com 2>/dev/null > temp.html
En curl versión 7.22.0 en Ubuntu y 7.24.0 en OSX, la solución para no mostrar el progreso pero sí mostrar errores es usar -s
( --silent
) y -S
( --show-error
) de esta manera:
curl -sS http://google.com > temp.html
Esto funciona tanto para la salida redirigida > /some/file
como para la salida canalizada | less
y la salida directamente al terminal para mí.
Actualización : desde curl 7.67.0 hay una nueva opción --no-progress-meter
que hace precisamente esto y nada más, consulte la respuesta de clonejo para más detalles.