LinuxCommandLibrary

progress

Display progress for coreutils commands

TLDR

Show the progress of running coreutils

$ progress
copy

Monitor all running coreutils
$ progress [[-m|--monitor]]
copy

Show the progress of running coreutils in quiet mode
$ progress [[-q|--quiet]]
copy

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

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

SYNOPSIS

progress [options] [pid...]

PARAMETERS

-m, --monitor
    Monitor any new process as it starts within current console.

-q, --quiet
    Suppresses error messages if processes cannot be found or accessed.

-s, --scan-once
    Scans process list and exits after first scan.

-w, --watch
    Watches process list and exits when no processes are found to monitor.

-c, --columns
    Display output in columns instead of rows.

-d, --debug
    Enables debugging output. Use multiple times for more verbosity.

-v, --version
    Displays the version number and exits.

-h, --help
    Displays help message and exits.

[pid...]
    Specifies a list of process IDs to monitor.

DESCRIPTION

The progress command is a Linux utility that displays the progress of ongoing coreutils commands (like cp, mv, dd, tar, gzip, etc.) running on the system. Instead of just waiting for a long-running operation to complete, progress provides real-time information such as the percentage completed, estimated time remaining, throughput, and the source and destination files being processed. It does this by parsing the kernel's /proc filesystem to gather information about the active processes and their I/O activity. This allows it to work without requiring any modifications to the commands being monitored. Progress is a valuable tool for system administrators and users who need to understand the status of lengthy data operations.

CAVEATS

progress relies on parsing the /proc filesystem, which might have performance implications on systems with a very large number of processes. It may not accurately track the progress of all types of commands, particularly those that don't perform regular file I/O. It also requires appropriate permissions to access the necessary process information. Not all commands supported.

INSTALLATION

progress is not always included by default on Linux distributions. It may need to be installed using the distribution's package manager (e.g., apt install progress on Debian/Ubuntu, yum install progress on CentOS/RHEL).

PERMISSIONS

To monitor processes owned by other users, progress may require root privileges (run with sudo). Otherwise, it will only be able to track processes owned by the current user.

HISTORY

progress was originally developed to provide a more user-friendly way to monitor long-running tasks than traditional tools like top or ps. It gained popularity due to its ability to directly track the progress of common file operations. The command's development has focused on improving its accuracy, expanding the range of supported commands, and providing a more informative and user-friendly display.

SEE ALSO

top(1), ps(1), iotop(1)

Copied to clipboard