https://github.com/Xfennec/progress
Linux tool to show progress for cp, mv, dd, ... (formerly known as cv)
https://github.com/Xfennec/progress
coreutils linux monitoring
Last synced: 8 months ago
JSON representation
Linux tool to show progress for cp, mv, dd, ... (formerly known as cv)
- Host: GitHub
- URL: https://github.com/Xfennec/progress
- Owner: Xfennec
- License: gpl-3.0
- Created: 2013-11-22T15:25:33.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2023-10-13T08:49:15.000Z (about 2 years ago)
- Last Synced: 2024-09-18T07:01:16.882Z (about 1 year ago)
- Topics: coreutils, linux, monitoring
- Language: C
- Homepage:
- Size: 271 KB
- Stars: 8,523
- Watchers: 140
- Forks: 312
- Open Issues: 62
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- stars - Xfennec/progress
- awesome-shell - progress - Linux tool to show progress for `cp`, `rm`, `dd`, and more... (System Utilities / Directory Navigation)
- awesome-starred - Xfennec/progress - Linux tool to show progress for cp, mv, dd, ... (formerly known as cv) (monitoring)
- StarryDivineSky - Xfennec/progress
- awesome-ccamel - Xfennec/progress - Linux tool to show progress for cp, mv, dd, ... (formerly known as cv) (C)
- awesome-terminals - progress - Linux tool to show progress for cp, mv, dd, ... (formerly known as cv). (Tools / C)
- fucking-awesome-shell - progress - Linux tool to show progress for `cp`, `rm`, `dd`, and more... (System Utilities / Directory Navigation)
- awesome-macos-commandline - progress - Tool to show progress for cp, mv, dd. (Uncategorized / Uncategorized)
- awesome-cli-apps-in-a-csv - progress - Monitor the progress of common Coreutils command-line tools (`cp`, `mv`, `dd`, `tar`, `rsync`, etc.); it uses a ncurses interface to display the percentage of data copied; it works by reading from system files and retrieving the necessary information for the estimation. (<a name="file-handling"></a>File and file system handling)
README
progress - Coreutils Progress Viewer
=====================
What is it
----------
This tool can be described as a **tiny**, dirty 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 also show **estimated time** and **throughput**,
and provides a "top-like" mode (monitoring).

_(After many requests: the colors in the shell come from [powerline-shell](https://github.com/milkbikis/powerline-shell). Try it, it's cool.)_
`progress` works on Linux, FreeBSD and macOS.
Formerly known as cv (Coreutils Viewer).
How do you install it
---------------------
On deb-based systems (Debian, Ubuntu, Mint, etc.) run:
apt install progress
On Arch Linux, run:
pacman -S progress
On Fedora, run:
dnf install progress
On openSUSE, run:
zypper install progress
On macOS, with homebrew, run:
brew install progress
On macOS, with MacPorts, run:
port install progress
Packaging status:
-----------------
[](https://repology.org/project/progress/versions)
How do you build it from source
-------------------------------
make && make install
On FreeBSD, substitute `make` with `gmake`.
It depends on the library ncurses, you may have to install corresponding packages (maybe something like 'libncurses5-dev', 'libncursesw6' or 'ncurses-devel').
How do you run it
-----------------
Just launch the binary, `progress`.
What can I do with it
---------------------
A few examples. You can:
* monitor all current and upcoming instances of coreutils commands in
a simple window:
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 $!
and much more.
How does it work
----------------
It simply scans `/proc` for interesting commands*, and then looks at
directories `fd` and `fdinfo` to find opened files and seek positions,
and reports status for the largest file.
It's very light and compatible with virtually any command.
(*) on macOS, it does the same thing using libproc