pv
Monitor the progress of data through a pipe. tldr-pages
On several platforms
Several platforms
Print the contents of the file and display a progress bar
pv path/to/fileIdentifyMeasure the speed and amount of data flow between pipes (--size is optional)
command1 | pv --size expected_amount_of_data_for_eta | command2IdentifyFilter a file, see both progress and amount of output data
pv --cursor --name in path/to/file.txt | grep pattern | pv --cursor --name out >path/to/filtered_file.txtIdentifyAttach to an already running process and see its file reading progress
pv --watchfd process_idIdentifyRead an erroneous file, skip errors as dd conv=sync,noerror would
pv --skip-errors --skip-errors path/to/faulty_media >path/to/image.imgIdentifyStop reading after reading specified amount of data, rate limit to 1K/s
pv --rate-limit 1K --stop-at-size maximum_file_size_to_be_readIdentifyCalculate hash (MD5, SHA1, SHA256, etc.) of a large file and show progress
pv path/to/file | sha256sumIdentifyOnly display a timer for how long a command has taken to run
command | pv --timerIdentify