summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 7f7bb12d5fa9510f415503ece6022e0e00ad18d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
progress - Coreutils Progress Viewer [![Build Status](https://travis-ci.org/Xfennec/progress.svg?branch=master)](https://travis-ci.org/Xfennec/progress)
=====================

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).

![progress screenshot with cp and mv](https://raw.github.com/Xfennec/progress/master/capture.png)

_(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 archlinux, run:

    pacman -S progress

On rpm-based systems (Red Hat, CentOS, Fedora, SUSE, etc.), run one of these:

    dnf install progress
    yum install progress

On macOS, with homebrew, run:

    brew install progress

On macOS, with MacPorts, run:

    port install progress

How do you build it from source
-------------------------------

    make && make install

On FreeBSD, substitute `make` with `gmake`.

It depends on library ncurses, you may have to install corresponding packages (may be 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.