MD5进度输出 - BASH

时间:2013-01-29 00:51:20

标签: bash md5sum

我在工作中得到了一个简单的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

1 个答案:

答案 0 :(得分:11)

使用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