2

我正在开发一个简单的 MD5SUM 脚本。除了显示进度的部分(已计算给用户的文件的百分比)之外,它几乎完成了。我正在考虑使用带有虚拟变量的 while 循环来检查 MD5 是否已计算。唯一的问题是 md5sum(在 linux 上)不返回任何反馈,除非计算出实际的 md5sum。因此,很难向用户显示已处理了多少文件。这是脚本的副本。

#!/bin/bash

#MD5 verification tool
#1st argument is file name of .iso, and the 2nd argument is the the MD5 hexsum.

echo Checking file $1 .....  
#calc md5 for file
SUM=`md5sum $1`
#insert while loop here?
#compare values
test $SUM = $2 && echo original || echo False 

#8cd98b693ce542b671edecaed48ab06d8c
# GNOME-64.iso

exit 0
4

1 回答 1

12

使用pv,可安装在所有主要发行版上。SUM=$(pv "$1" | md5sum)将显示一个包含吞吐量和所有内容的漂亮进度条,例如:

bash> pv /media/secondary/backups/2013_01_12/* | md5sum
10.2GB 0:01:32 [ 115MB/s] [====>                 ] 19% ETA 0:06:21
于 2013-01-29T00:55:05.863 回答