Progress, formerly known as Coreutils Viewer, is a light C command that searches for coreutils basic commands such as cp, mv, tar, dd, gzip/gunzip, cat, grep, etc currently being executed on the system and shows the percentage of data copied, it only runs on Linux and Mac OS X operating systems.
Additionally, it also displays important aspects such as estimated time and throughput and offers users a “top-like” mode.
[ You might also like: How to Monitor Progress of Data using Pipe Viewer [pv] in Linux ]
It utterly scans the /proc filesystem for fascinating commands and then searches the
fdinfo directories to find opened files seek positions, and reports status for the extensive files. Importantly, it is a very light tool, and compatible with practically any command.
Table of Contents
How to Install Progress Viewer on Linux
Progress requires the ncurses library in order to work, therefore install libncurses before proceeding to install it, by running the appropriate command below:
$ sudo apt install libncurses5-dev [On Debian, Ubuntu and Mint] $ sudo yum install ncurses-devel [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a ncurses-devel [On Gentoo Linux] $ sudo apk add ncurses-dev [On Alpine Linux] $ sudo pacman -S ncurses-devel [On Arch Linux] $ sudo zypper install ncurses-devel [On OpenSUSE]
On rpm-based distributions such as (Red Hat, CentOS, Fedora, SUSE, Rocky, AlmaLinux, etc.), run one of these:
$ sudo dnf install progress $ sudo yum install progress
On deb-based systems (Debian, Ubuntu, Mint, etc.) run:
$ sudo apt install progress
On Arch Linux, run:
$ sudo pacman -S progress
On other Linux distributions, you can start by cloning or downloading the package files from its Github repo as follows:
# git clone https://github.com/Xfennec/progress.git
Next, move into the progress directory and build it as shown:
$ cd progress $ make $ sudo make install
After successfully installing it, simply run this tool from your terminal, below we shall walk through a few examples of using Progress on a Linux system.
Monitor the Progress of Commands in Linux
You can view all the coreutils commands that Progress works with by running it without any options, provided non of the coreutils commands is being executed on the system:
To display estimated I/O throughput and the estimated remaining time for ongoing coreutils commands, enable the
$ progress -w
Show Progress in Copying Files
To view the progress of the cp command, while copying large files, run:
$ cp GhostBSD.vdi /home/tecmint/Downloads/ & progress -mp $!
Show Progress of Moving Files
To view the progress of the mv command, while moving large files, run:
$ mv GhostBSD.vdi /media/tecmint/Personal_Data/ & progress -mp $!
Show Progress of Tar Files
To view the progress of the tar command, while creating the tar archive, run:
$ tar czf images.tar.gz linuxmint-18-cinnamon-64bit.iso CentOS-7.0-1406-x86_64-DVD.iso CubLinux-1.0RC-amd64.iso | progress -m $!
Show Progress of Multiple Commands
In the next example, you can open two or more terminal windows, then run the coreutils commands in one each, and watch their progress using the other terminal window as shown in the image below.
The command below will enable you to monitor all the current and imminent instances of coreutils commands:
$ watch progress -q
For more interesting options, look through the progress man pages or visit https://github.com/Xfennec/progress :
$ man progress
As a concluding remark, this is a very useful tool for monitoring the progress of coreutils commands, especially when copying or archiving and compressing heavy files, plus so much more.
If you have installed it successfully, use it and share your experience with us via the comment section below. You can as well provide us some great usage examples where you find it helpful for important everyday system administration tasks and more.