Como mostrar o progresso do comando linux “cmp”?

4

Existe uma maneira de mostrar o progresso ao executar o comando cmp?

Comparar arquivos grandes ou partições usando cmp pode demorar um pouco.

Eu pesquisei no google e usei man cmp, mas não consegui encontrar nenhuma informação útil.

Com o comando 'dd', por exemplo, executando

kill -USR1 [pid_of_dd]

faz o dd gerar seu status no console.

Existe uma maneira de fazer o cmp fazer algo semelhante?

    
por Iljaas 23.11.2011 / 12:21

2 respostas

11

Você pode usar o PipeViewer para isso

pv firstfile | cmp -l secondfile > output
    
por 23.11.2011 / 13:39
7
$ 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 com o tamanho dos arquivos.

    
por 23.11.2011 / 17:35