Estou tentando analisar isso: Como obtenho a soma MD5 do conteúdo de um diretório como uma soma? , e estou tentando:
$ find | LC_ALL=C sort | cpio -o | md5sum
25324 blocks
6631718c8856606639a4c9b1ef24d420 -
Hmm ... Eu gostaria apenas do hash, nada mais na saída ... supondo que "25324 blocos" foi impresso para stderr, tento redirecionar stderr para /dev/null
:
$ find | LC_ALL=C sort | cpio -o | md5sum 2>/dev/null
25324 blocks
6631718c8856606639a4c9b1ef24d420 -
Não, não é isso. Vamos apenas pelo teste, tente redirecionar o stdout para /dev/null
:
$ find | LC_ALL=C sort | cpio -o | md5sum 1>/dev/null
25324 blocks
Ok, o hash desapareceu como esperado - mas a mensagem "blocos" ainda está lá ?! Onde diabos é este "25324 blocos" impresso, via descritor de arquivo 3?!:
$ find | LC_ALL=C sort | cpio -o | md5sum 3>/dev/null
25324 blocks
6631718c8856606639a4c9b1ef24d420 -
Não, não é isso ... De qualquer forma, eu posso pegar apenas o hash com o awk:
$ find | LC_ALL=C sort | cpio -o | md5sum | awk '{print $1}'
25324 blocks
6631718c8856606639a4c9b1ef24d420
mas ainda assim a maldita mensagem "blocos" é impressa ... Então, como ela é impressa no terminal (como parece não ser impressa via stdout ou stderr), e como posso suprimir essa mensagem?
EDIT: encontrou a resposta, a mensagem "blocos" é impressa por cpio
, então a coisa certa a fazer é:
$ find | LC_ALL=C sort | cpio -o 2>/dev/null | md5sum | awk '{print $1}'
6631718c8856606639a4c9b1ef24d420
Agora temos apenas o hash ...