Transfer progress should match the job you are running. An interactive terminal usually needs visible progress so you can spot stalls quickly, while scheduled jobs and copied logs need an output style that stays readable after the download finishes.
GNU wget exposes two progress families with --progress: bar for a redrawn terminal bar and dot for line-oriented output. Current builds use a bar by default on a real terminal, fall back to dot mode when output is not a TTY, and let you override that behavior with parameters such as bar:force:noscroll. --show-progress keeps a progress indicator visible even when you also use quieter verbosity modes.
The trade-off is observability versus log hygiene. Bar mode is ideal for a live terminal, but copied logs often retain only the final summary line because the bar redraws in place, while dot mode produces durable lines that are easier to archive, tail, and parse later.
$ wget --progress=dot:binary https://downloads.example.net/files/sample-1m.bin
--2026-03-27 06:59:20-- https://downloads.example.net/files/sample-1m.bin
Connecting to downloads.example.net (downloads.example.net)|203.0.113.50|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576 (1.0M) [application/octet-stream]
Saving to: 'sample-1m.bin'
0K ........... ..... ................ ................ 37% 92.3K 7s
384K ................ ................ ................ 75% 99.8K 3s
768K ................ ................ 100% 114K=10s
2026-03-27 06:59:31 (99.9 KB/s) - 'sample-1m.bin' saved [1048576/1048576]
dot:binary prints progress in durable lines, which makes it the easier style to archive and review later.
$ wget --progress=bar:force:noscroll https://downloads.example.net/files/sample-1m.bin 2026-03-27 06:58:50 URL:https://downloads.example.net/files/sample-1m.bin [1048576/1048576] -> "sample-1m.bin" [1]
Bar mode redraws the same terminal line repeatedly, so pasted logs usually keep only the final completion summary shown here.
$ wget --show-progress --progress=bar:force --no-verbose https://downloads.example.net/files/sample-1m.bin 2026-03-27 06:56:07 URL:https://downloads.example.net/files/sample-1m.bin [1048576/1048576] -> "sample-1m.bin" [1]
--show-progress keeps the live progress indicator on stderr even when the rest of the transfer output is reduced.
~/.wgetrc progress = bar:force
Account-level defaults are useful when the same shell or automation environment runs wget repeatedly with one preferred display style.
$ wget --quiet --output-document=/tmp/sample-1m.bin https://downloads.example.net/files/sample-1m.bin $ echo $? 0 $ ls -lh /tmp/sample-1m.bin -rw-r--r-- 1 user user 1.0M Mar 27 06:59 /tmp/sample-1m.bin
Quiet mode hides progress and most status messages, so always pair it with an exit-code check and a destination-file check.