Boa “barra de progresso” sobre o md5sum verificando o progresso?

1

Estou usando isso agora:

time md5sum -c *.txt | pv | grep -v ': OK$'

mas não existem soluções inteligentes que possam listar quantos arquivos não foram verificados? Quer dizer, eu tenho muitos md5sum em arquivos .txt em um diretório, e preciso checá-los, mas seria bom saber quantos arquivos são deixados para escanear ...

p.s .: então não é realmente uma barra de progresso, apenas um contador que mostra quantos arquivos resta para "md5sum -c FILENAME".

    
por LanceBaynes 17.07.2011 / 15:34

1 resposta

2

Você pode passar os nomes para md5sum , um por um.

n=$(cat *.txt | wc -l)
cat *.txt | {
  i=0 bad=0
  while IFS= read -r line; do
    i=$((i+1))
    echo "Checking file $i/$n: $line"
    echo "$line" | md5sum -c - || bad=$((bad+1))
  done
  [ $bad -eq 0 ] || { echo "$bad bad checksums"; false; }
}

Ou, para uso casual, você pode executar o comando simples e verificar qual arquivo md5sum está pronto, vendo o que ele abriu.

lsof -p1234
# note the file name
cat *.txt | grep -n FILENAME
    
por 17.07.2011 / 15:52