Progress – Show Percentage of Copied Data for (cp, mv, dd, tar) Commands

Take Your Linux Skills to the Next Level All courses, certifications, ad-free articles & community — from $8/mo
Join Root →
Ad-free access to all premium articles
Access to all courses: Learn Linux, AI for Linux, Bash Scripting, Ubuntu Handbook, Golang and more.
Access to Linux certifications (RHCSA, RHCE, LFCS and LFCA)
Access new courses on release
Get access to weekly newsletter
Priority help in comments
Private Telegram community
Connect with the Linux community
From $8/mo · or $59/yr billed annually · Cancel anytime

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.

It utterly scans the /proc filesystem for fascinating commands and then searches the fd and 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.

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:

$ progress 
Progress Viewer Commands
Progress Viewer Commands

To display estimated I/O throughput and the estimated remaining time for ongoing coreutils commands, enable the -w option:

$ progress -w
Monitor Progress of Running Commands
Monitor the Progress of Running Commands

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 $!
Monitor cp Command Progress
Monitor cp Command Progress

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 $!
mv - Show Progess While Moving Files
mv – Show Progress While Moving Files

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  $!
Monitor Progress of Linux Commands
Monitor the Progress of Linux Commands

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
Conclusion

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.

Root Plan
Premium Linux Education for Serious Learners

Take Your Linux Skills to the Next Level

Root members get full access to every course, certification prep track, and a growing library of hands-on Linux content — with new courses added every month.

What You Get
Ad-free access to all premium articles
Access to all courses: Learn Linux, AI for Linux, Bash Scripting, Ubuntu Handbook, Golang and more.
Access to Linux certifications (RHCSA, RHCE, LFCS and LFCA)
Access new courses on release
Get access to weekly newsletter
Priority help in comments
Private Telegram community
Connect with the Linux community
Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

10 Comments

Leave a Reply
  1. Hi All, I need to activate my progress (OpenEdge Release 12.2.5) which is installed on CentOS 7, so can someone help me out on the same?

    Reply
    • @Markus,

      Please install missing pkg-config package using following command, which is needed to build Progress tool from sources..

      $ sudo apt-get install -y pkg-config
      
      Reply
  2. I have an offtopic question. What is your theme windows? I mean to the theme used to the Linux machines of the post author (Black Shell)

    Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.

Root Plan Premium Linux Education for Serious Learners

Before You Go - Upgrade Your Linux Skills

Root members get everything in one place, with new courses added every month.

What You Get
Ad-free access to all premium articles
Access to all courses: Learn Linux, AI for Linux, Bash Scripting, Ubuntu Handbook, Golang and more.
Linux certifications: RHCSA, RHCE, LFCS and LFCA
Access new courses on release
Weekly newsletter, priority support & Telegram community
Join Root Today and Start Learning Linux the Right Way
Structured courses, certification prep, and a community of Linux professionals - all in one membership.
Join Root Plan →
$8/mo · or $59/yr billed annually