我现在正在使用这个:
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