每天进步一点点:Linux下校验文件

in #cn5 years ago

在之前的帖子中,我介绍了axel这个多线程下载工具,用来替换wget进行多线程下载。

每天进步一点点

(图源 :pixabay)

不过在用axel下载了一个数百G的文件后,我突然发觉心里没底,万一这个文件里边丢失哪怕一个字节的内容,这个文件都算白下了,那么如何校验我下载的文件和原始文件一致呢?

md5sum

其实最简单的方法就是校验文件的hash值了,而校验文件hash值最常用的就是md5sum啦。

Ubuntu 18.04发行版中已经包含了md5sum(包含在GNU Core Utilities中),所以我们直接使用即可,无需安装。

调用方式如下:

md5sum [option]… [file]…

比如我要检查文件aaa.tgz的md5,那么只需调用:

md5sum aaa.tgz

输出结果如下:

之后再去服务器上执行同样的命令,获取服务器对应文件的hash,并进行对比就可以啦。

使用校验文件

在对单个文件进行处理时,只要不是头昏眼花,上述人工肉眼判断是没有问题的,但是如果多个文件需要校验,那么估计就该头昏眼花了。

所以使用-c参数就很有必要了:

-c, --check read MD5 sums from the FILEs and check them

简单的来讲,就是把原始文件生成的md5sum输出写入到文件中,下载或复制等传播后,md5sum会直接处理文件并对比校验码。

举例如下:
我们在服务器上生成aaa.tgz的校验码并保存到本地文件md5.txt,内容如下:

d41d8cd98f00b204e9800998ecf8427e aaa.tgz

在本地执行如下命令:

md5sum -c md5.txt

返回内容如下,说明文件校验成功。

下面我们手工破坏一下文件,再测试一下:

echo "hello" >> aaa.tgz
md5sum -c md5.txt

再来看测试结果,会发现提示校验检查出错:

其它补充

除了md5sum,还有好多内置的校验工具可用:

对我而言,校验自己的文件,用md5sum足够啦。

相关链接


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

Sort:  

@tipu curate

Thank you so much for participating in the Partiko Delegation Plan Round 1! We really appreciate your support! As part of the delegation benefits, we just gave you a 3.23% upvote! Together, let’s change the world!

Downvoting due to suspected vote trading.

Hi @transisto
I hope you can read this post carefully and the cancel the downvote.
The about same reason here.

Coin Marketplace

STEEM 0.20
TRX 0.14
JST 0.030
BTC 63718.61
ETH 3390.60
USDT 1.00
SBD 2.62