progress (1) - Linux Manuals

progress: Coreutils Progress Viewer


progress - Coreutils Progress Viewer


progress [ -qdwmM ] [ -W secs ] [ -c command ] [ -p pid ]
progress -v | --version
progress -h | --help


This manual page briefly documents the progress command.

This tool can be described as a Tiny, Dirty, Linux-Only C command that looks for coreutils basic commands (cp, mv, dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays the percentage of copied data.

It can now also estimate throughput (using flag -w ).


-q (--quiet)
hides all messages
-d (--debug)
shows all warning/error messages
-w (--wait)
estimate I/O throughput and estimated remaining time (slower display)
-W (--wait-delay secs)
wait 'secs' seconds for I/O estimation (implies -w )
-m (--monitor)
loop while monitored processes are still running
-M (--monitor-continuously)
like monitor but never stop (similar to watch progress )
-c (--command cmd)
monitor only this command name (ex: firefox). This option can be used multiple times on the command line.
-p (--pid id)
monitor only this numeric process ID (ex: `pidof firefox`). This option can be used multiple times on the command line.
-i (--ignore-file file)
do not report a process for 'file'. If the file does not exist yet, you must give a full and clean absolute path. This option can be used multiple times on the command line.
-o (--open-mode {r|w})
report only files opened for read or write by the process. This option is useful when you want to monitor only output files (or input ones) of a process.
-v (--version)
show program version and exit
-h (--help)
display help message and exit


It's possible to give permanent options using PROGRESS_ARGS environment variable. See example below. Command line arguments take precedence over environment.


Continuously monitor all current and upcoming instances of coreutils commands

watch progress -q

See how your download is progressing

watch progress -wc firefox

Look at your Web server activity

progress -c httpd

Launch and monitor any heavy command using $!

cp bigfile newfile & progress -mp $!

Use environment variable to set permanent (multiple) arguments

export PROGRESS_ARGS='-M --ignore-file ~/.xsession-errors'


Please report bugs at:



This manual page was written by Thomas Zimmermann <bugs [at]>, for the openSUSE project (and may be used by others).