我使用shasum
来计算一大堆文件的校验和。
我注意到这需要一些时间(find
仅需要0.04s即可找到所有文件)。
$ time find /etc -exec shasum -a 1 {} \; >/tmp/chk.sum
real 3m49.969s
user 3m31.426s
sys 0m18.114s
$ wc -l /tmp/chk.sum
1177 /tmp/chk.sum
但是,当我随后继续验证校验和时。只需要一小部分时间。
$ time shasum -c /tmp/chk.sum |grep -v "OK"
real 0m0.574s
user 0m0.486s
sys 0m0.092s
我不明白。我的期望是它将花费大约。假设shasum
将需要再次计算每个文件的校验和,执行检查所需的时间与首先计算校验和所花费的时间相同。显然不是。怎么会来?