web-dev-qa-db-ja.com

md5sumチェックの進行状況についての良い「進行状況バー」?

私は今これを使用しています:

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

しかし、チェックされていないファイルの数をリストできるスマートなソリューションはありませんか?つまり、ディレクトリ内の.txtファイルに多くのmd5sumがあり、それらをチェックする必要がありますが、スキャンするファイルの残りの量を知っておくとよいでしょう。

p.s。:したがって、これは実際にはプログレスバーではなく、「md5sum-cFILENAME」に残っているファイルの数を出力するカウンターにすぎません。

1
LanceBaynes

名前を1つずつmd5sumに渡すことができます。

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; }
}

または、カジュアルに使用する場合は、単純なコマンドを実行し、開いているファイルを確認することで、md5sumがどのファイルに対応しているかを確認できます。

lsof -p1234
# note the file name
cat *.txt | grep -n FILENAME