Display/Monitor the progress of running coreutils.


Show the progress of running coreutils

$ progress

Show the progress of running coreutils in quiet mode
$ progress -q

Launch and monitor a single long-running command
$ [command] & progress --monitor --pid $!

Include an estimate of time remaining for completion
$ progress --wait --command [firefox]


progress [ -qdwmM ] [ -W secs ] [ -c command ] [ -a 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.

-a (--additional-command cmd)

add this command to the default list. 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 <>, for the openSUSE project (and may be used by others).

Copied to clipboard