欢迎光临
我们一直在努力

初学者的Linux md5sum命令解释(5个例子)

初学者的Linux md5sum命令解释(5个例子)

在下载文件时,尤其是从网站安装文件时,验证下载是否有效是个好主意。 网站通常会为每个文件显示一个散列值,以便确保下载正确完成。 在本文中,我们将讨论可用于验证下载的md5sum工具。 其他两个工具sha256sum和sha512sum的工作方式与md5sum相同。

Linux md5sum命令

md5sum命令使用MD5算法打印给定文件的32个字符(128位)校验和。 以下是这个命令行工具的命令语法:

md5sum [OPTION]… [FILE]…

以下是md5sum的手册页是如何解释的:

Print or check MD5 (128-bit) checksums.

下面的Q&A样式的例子会给你一个关于md5sum基本用法的更好的概念。

注意:在我们的示例中,我们将使用三个名为file1.txt,file2.txt和file3.txt的文件作为输入文件。 下面列出了每个文件中的文本。

FILE1.TXT:

hihellohow are youthanks.

FILE2.TXT:

hihello to youI am fineYour welcome!

file3.txt:

halloGuten TagWie geht es dirDanke.

Q1。 如何显示哈希值?

使用没有任何选项的命令来显示散列值和文件名。

md5sum file1.txt

以下是我们系统上生成的这个命令的输出:

[Documents]$ md5sum file1.txt1ff38cc592c4c5d0c8e3ca38be8f1eb1  file1.txt[Documents]$

输出也可以使用–tag选项以BSD格式显示。

md5sum –tag file1.txt

[Documents]$ md5sum --tag file1.txtMD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1[Documents]$

Q2。 如何验证多个文件?

md5sum命令可以一次验证多个文件。 我们将添加file2.txt和file3.txt来演示功能。

如果将散列写入文件,则可以使用该文件检查是否有任何文件已更改。 在这里,我们将文件的散列写入文件散列,然后使用它来验证没有任何文件已经改变。

md5sum file1.txt file2.txt file3.txt > hashes
md5sum –check hashes

[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes[Documents]$ md5sum --check hashesfile1.txt: OKfile2.txt: OKfile3.txt: OK[Documents]$ 

现在我们将更改file3.txt,在文件末尾添加一个感叹号,然后重新运行该命令。

echo “!” >> file3.txt
md5sum –check hashes

[Documents]$ md5sum --check hashesfile1.txt: OKfile2.txt: OKfile3.txt: FAILEDmd5sum: WARNING: 1 computed checksum did NOT match[Documents]$ 

你可以看到file3.txt已经改变了。

Q3。 如何只显示修改过的文件?

如果您有许多文件需要检查,您可能只想显示已更改的文件。 使用“–quiet”选项,md5sum将只列出已经改变的文件。

md5sum –quiet –check hashes

[Documents]$ md5sum --quiet --check hashesfile3.txt: FAILEDmd5sum: WARNING: 1 computed checksum did NOT match[Documents]$

Q4。 如何检测脚本中的更改?

您可能想要在脚本中使用md5sum。 使用“–status”选项,md5sum将不会打印任何输出。 相反,如果没有更改,状态码将返回0,如果文件不匹配,则返回1。 以下脚本hashes.sh将在状态码中返回1,因为文件已经更改。 脚本文件如下:

sh hashes.sh

hashes.sh:#!/bin/bashmd5sum --status --check hashesResult=$?echo "File check status is: $Result"exit $Result[Documents]$ sh hashes.shFile check status is: 1[[email protected] Documents]$ 

Q5。 如何识别无效的哈希值?

当比较文件时,md5sum可以让你知道是否有无效的散列。 要警告你,如果任何散列值不正确,你可以使用–warn选项。 对于最后一个例子,我们将使用sed在第三行的开头插入一个额外的字符。 这将改变文件哈希中的哈希值,使其无效。

sed -i ‘3s/.*/a&/’ hashes
md5sum –warn –check hashes

这表明第三行有一个无效的散列。

[Documents]$ sed -i '3s/.*/a&/' hashes[Documents]$ md5sum --warn --check hashesfile1.txt: OKfile2.txt: OKmd5sum: hashes: 3: improperly formatted MD5 checksum linemd5sum: WARNING: 1 line is improperly formatted[Documents]$

结论

md5sum是一个简单的命令,可以快速验证一个或多个文件,以确定是否有任何文件已经从原始文件更改。 有关md5sum的更多信息,请参见手册页。

赞(0) 打赏
未经允许不得转载:老赵部落 » 初学者的Linux md5sum命令解释(5个例子)

评论 抢沙发