Open In App

Viewing Progress of Commands Using Pipe Viewer Tool in Linux

Last Updated : 17 May, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

Pipe Viewer (pv) is the CLI tool that allows users to track the progress of the process and display them on the terminal by giving information such as total data transferred, the time elapsed, completed percentage, etc. To visualize the process progress it can be used normally via pipe operator b/w processes. 

Why do we require it?

Some processes have inbuilt functionality or via parameterized to show the progress of the process, but some processes don’t have this, so we externally pass this from the Pipe Viewer tool and track the progress.

Pipe Viewer (pv): a CLI tool to track the progress of the process. 

Options for the Pipe Viewer tool: 

-s, –size <size>: Assume the total amount of data to be transferred is SIZE. You can provide the size in bytes or using units (b, kb, mb, gb, tb).

-N, –name <name>: Prefix the output information with NAME. 

Installation Process: It uses the npm (node package manager) and to install this run the following command. 

$ npm install -g pv

Pipe Viewer A Tool to View Progress of Commands in Linux

Here providing some examples to better understanding and to learn the use of this tool. 

Example 1: Display a dd copy progression: here we can see the progression of the copying file using dd command.

$ dd if=code_1.46.1-1592428892_amd64.deb | pv | dd of=gfg/code_2

Pipe Viewer A Tool to View Progress of Commands in Linux

Explanation: here in this screenshot we can see the file which contains by current directory, and we will copy the code_1.46.1-1592428892_amd64.deb file in gfg/ directory with the name of code . 

Example 2: A cat command progression: we can use the pv to visualize the progress of the content seeing using cat command. Here we will see the content of the sample.txt file.

$ cat gfg/sample.txt | pv

Pipe Viewer A Tool to View Progress of Commands in Linux

Example 3: Display the progression while compressing: To better ensuring we can see the live compression( track compression)  using pipe viewer.

$ tar -cf - gfg/* | pv | tar -C . -x

Pipe Viewer A Tool to View Progress of Commands in Linux

Here it above screenshots show all file content in the specified directory

Pipe Viewer A Tool to View Progress of Commands in Linux

Explanation: This command is compressing all files which are in gfg/ directory where all flag like -c, -x, etc has a meaning as specified below.

Flags that used in command 

  • -c: Creates archive
  • -x : Extracts the archive

Example 4: Visualize a live ssh network: using ssh we can connect the host and can see the live connection speed. Here for simplicity, we will direct transfer data to /dev/null

$ yes | pv | ssh kira@localhost "cat > /dev/null"

Pipe Viewer A Tool to View Progress of Commands in Linux

Explanation: command can be break in following part to understand

  1. yes → it gives the permission to connect with the server and can save fingerprint
  2. pv → for pipe viewer
  3. ssh kira@localhost  â†’ connecting with localhost server
  4. “cat > /dev/null” → command processing for track progress

Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads