Transfer progress should match the job being run. An interactive terminal usually needs visible live feedback so stalls are easy to spot, while scheduled jobs and copied logs need an output style that stays readable after the download finishes.
GNU wget exposes two main progress families through --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 variants such as bar:force:noscroll. --show-progress keeps a progress indicator visible even when the rest of the transfer output is quieter.
The trade-off is observability versus log hygiene. Bar mode is ideal for a live terminal, but copied logs often keep only the final summary because the bar redraws in place, while dot mode produces durable lines that are easier to archive, tail, and parse later. Quiet mode suppresses both, so it should always be paired with an exit-code and file check.
Steps to control wget progress output:
- Use line-oriented dot output when progress needs to survive copied logs and monitoring tools.
$ wget --progress=dot:binary https://downloads.example.net/releases/release-2026.03.tar.gz ##### snipped ##### 0K ................ ................ ................ 2% 1.95M 8s 384K ................ ................ ................ 4% 1.98M 8s 768K ................ ................ ................ 7% 1.99M 7s 2026-03-29 14:33:14 (2.03 MB/s) - 'release-2026.03.tar.gz' saved [16777216/16777216]dot:binary prints durable progress lines, which makes it the easier style to archive and review later.
- Force bar output for an interactive terminal or multiplexer when automatic detection would otherwise choose dot mode.
$ wget --progress=bar:force:noscroll https://downloads.example.net/releases/release-2026.03.tar.gz ##### snipped ##### release-2026.03.tar 0%[ ] 0 --.-KB/s release-2026.03.tar 5%[> ] 896.00K 1.98MB/s ##### snipped ##### 2026-03-29 14:33:23 (2.03 MB/s) - 'release-2026.03.tar.gz' saved [16777216/16777216]
Bar mode redraws the same terminal line repeatedly and may truncate longer filenames to fit the current terminal width, so pasted logs usually keep only the final completion summary.
- Add --show-progress when progress should stay visible even with quieter status output.
$ wget --show-progress --progress=bar:force:noscroll --no-verbose \ https://downloads.example.net/releases/release-2026.03.tar.gz 2026-03-29 14:33:31 URL:https://downloads.example.net/releases/release-2026.03.tar.gz [16777216/16777216] -> "release-2026.03.tar.gz" [1]
--show-progress keeps the live progress indicator on stderr even when the rest of the transfer output is reduced, but copied logs often retain only the final summary line shown here.
- Save the preferred default for one account in /$HOME/.wgetrc and override it only when a specific job needs a different style.
~/.wgetrc progress = bar:force
Account-level defaults are useful when the same shell or automation environment runs wget repeatedly with one preferred display style.
- Treat --quiet as a logging choice, not a verification strategy.
$ wget --quiet --output-document=release-2026.03.tar.gz https://downloads.example.net/releases/release-2026.03.tar.gz $ echo $? 0 $ ls -lh release-2026.03.tar.gz -rw-r--r-- 1 user user 16M Mar 29 14:33 release-2026.03.tar.gz
Quiet mode hides progress and most status messages, so always pair it with an exit-code check and a destination-file check.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
