Linux:md5sum指令

学习自:

Linux shell编程学习笔记42:md5sum_PurpleEndurer@5lcto的技术博客_51CTO博客

MD5SUM详解_md5sum命令详解-CSDN博客

0、常用

#校验文件
md5sum 1.txt
f447b20a7fcbf53a5d5be013ea0b15af  1.txt

#校验标准输入
echo "123456" | md5sum
f447b20a7fcbf53a5d5be013ea0b15af -

 

 

1、简介

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致

如果一个文件的内容不改变,那么该文件的MD5值也不会变化。

即使文件名变了,但是只要文件内容不变,其MD5值也不会改变。

通常用于在传输文件时校验文件完整性

2、用法

md5sum 选项 文件

返回值

①校验码(当选项为b、c、t时);

②校验结果(OK、FAILED,当选项为c时)

可以用md5sum 选项 文件 > xxx.md5的方式将校验和保存到md5文件中

说明

当文件为-时,校验内容为标准输入

例如:

echo "123456" | md5sum

3、选项

选项

用法

说明

-b

--binary

以二进制模式读取文件 GNU系统上,二进制文件和文本文件无区别

-c

--check

从FILE中读取MD5校验和并检验  
--tag 创建BSD样式的校验和  

-t

--text

以文本模式读取文件(默认)  
--quiet 不为成功验证的文件打印OK 仅在验证校验和时有用(也就是说和参数-c配合出现)
--status 不输出任何内容,用状态码表示成功
--strict 当校验到格式不正确的校验行时,用非0退出

-w

--warn

当校验到格式不正确的校验行时,发出警告
--version 显示版本  
--help 显示帮助  

 

4、例子

1)默认文本模式(-t)读取文件,输出md5校验和

echo "123456" > 1.txt
md5sum 1.txt
f447b20a7fcbf53a5d5be013ea0b15af  1.txt

 

 2)二进制模式(-b)读取文件,输出md5校验和

md5sum -b 1.txt
f447b20a7fcbf53a5d5be013ea0b15af *1.txt

相比文本模式,被读取的文件名前多了一个*。

 

3)默认文本模式读取标准输入,输出md5校验和

echo "123456" | md5sum
f447b20a7fcbf53a5d5be013ea0b15af -

由于未指定文件,所以显示的文件名为-,代表标准输入。

如果不用echo命令:

"123456" | md5sum

-bash: 123456: 未找到命令
d41d8cd98f00b204e9800998ecf8427e  -

仍会输出md5校验值,但在此之前会显示一条错误信息:命令未找到

 

4)二进制模式读取标准输入,输出md5校验和

echo "123456" | md5sum -b

f447b20a7fcbf53a5d5be013ea0b15af *-

5)用md5校验值校验文件,选项-c

md5文件存放的是校验和

echo "123456" > 1.txt
md5sum 1.txt > 123456.md5

cat 123456.md5 f447b20a7fcbf53a5d5be013ea0b15af 1.txt
md5sum -c 123456.md5 1.txt: 成功
echo "12345678" > 1.txt
md5sum -c 123456.md5 1.txt: 失败 md5sum: 警告:1 个校验和不匹配

md5文件中,存放了一个校验码及它对应的文件名1.txt。

当修改1.txt的文件内容后,校验码随之发生变化,与md5文件存放的校验码内容不一致,因此用-c检查后,返回失败

6)用md5校验值校验文件,校验成功时不打印OK:--quiet

echo "123456" > 1.txt
md5sum  1.txt > 123456.md5
md5sum -c --quiet 123456.md5
#校验通过时,不输出OK
echo "123" > 1.txt md5sum -c --quiet 123456.md5 1.txt: 失败 md5sum: 警告:1 个校验和不匹配

7)用md5校验文件,通过状态码反馈校验结果:--quiet --status

状态码为0时,校验通过;为1时,不通过。

echo "123456" > 1.txt
md5sum 1.txt > 123456.md5
md5sum -c --quiet --status 123456.md5
echo $?
0
echo "123" > 1.txt md5sum -c --quiet --status 123456.md5 echo $? 1

$?:进程状态码。

 

posted @ 2024-09-05 11:08  ShineLe  阅读(82)  评论(0编辑  收藏  举报