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

in #cn6 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

输出结果如下:

Reveal spoiler

之后再去服务器上执行同样的命令,获取服务器对应文件的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

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

Reveal spoiler

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

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

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

Reveal spoiler

其它补充

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

Reveal spoiler

对我而言,校验自己的文件,用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.