关于 md5sum 检查进度的良好“进度条”?

关于 md5sum 检查进度的良好“进度条”?

我现在正在使用这个:

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

但是否有任何智能解决方案可以列出有多少文件尚未检查?我的意思是我在目录中的 .txt 文件中有很多 md5sum,我需要检查它们,但知道还有多少文件需要扫描是一件好事。

ps:所以它并不是真正的进度条,只是一个计数器,输出“md5sum -c FILENAME”剩余的文件数量。

答案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

相关内容