How do I get cURL to not show the progress bar?
I'm trying to use cURL in a script and get it to not show the progress bar.
I've tried the -s
, -silent
, -S
, and -quiet
options, but none of them work.
Here's a typical command I've tried:
curl -s http://google.com > temp.html
I only get the progress bar when pushing it to a file, so curl -s http://google.com
doesn't have a progress bar, but curl -s http://google.com > temp.html
does.
curl -s http://google.com > temp.html
works for curl version 7.19.5 on Ubuntu 9.10 (no progress bar). But if for some reason that does not work on your platform, you could always redirect stderr to /dev/null:
curl http://google.com 2>/dev/null > temp.html
In curl version 7.22.0 on Ubuntu and 7.24.0 on OSX the solution to not show progress but to show errors is to use both -s
(--silent
) and -S
(--show-error
) like so:
curl -sS http://google.com > temp.html
This works for both redirected output > /some/file
, piped output | less
and outputting directly to the terminal for me.
Update: Since curl 7.67.0 there is a new option --no-progress-meter
which does precisely this and nothing else, see clonejo's answer for more details.
I found that with curl 7.18.2 the download progress bar is not hidden with:
curl -s http://google.com > temp.html
but it is with:
curl -ss http://google.com > temp.html