Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Is there a way to show the progress when running the cmp command?

Comparing large files or partitions using cmp can take a while.

I have searched google and used man cmp, but failed to find any useful information.

With the 'dd' command for example executing

kill -USR1 [pid_of_dd]

makes dd output its status in the console.

Is there a way to make cmp do something similar?

share|improve this question

migrated from stackoverflow.com Nov 23 '11 at 11:37

This question came from our site for professional and enthusiast programmers.

2 Answers 2

up vote 8 down vote accepted

You can use PipeViewer for this

pv firstfile | cmp -l secondfile > output
share|improve this answer
    
Thanks! Your answer is really useful for other commandline stuff as well. –  Iljaas Nov 24 '11 at 8:34
$ cmp -l firstfile secondfile &
[1] pid_of_cmp
$ ls -l /proc/pid_of_cmp/fd/
lrwx------ 1 user group 64 datetime 0 -> /dev/console
lrwx------ 1 user group 64 datetime 1 -> /dev/console
lrwx------ 1 user group 64 datetime 2 -> /dev/console
lr-x------ 1 user group 64 datetime 3 -> /path/to/firstfile
lr-x------ 1 user group 64 datetime 4 -> /path/to/secondfile
$ cat /proc/pid_of_cmp/fdinfo/0
pos:    25952256
flags:  0100000
$ cat /proc/pid_of_cmp/fdinfo/1
pos:    122650624
flags:  0100000

Compare pos to the size of the files.

share|improve this answer
    
This option is very useful in some cases: you don't have the pv or bar commands; you don't have control over the command (for example a GUI program launches it); or the command doesn't support pipes. –  golimar Feb 28 '13 at 17:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.