初学者的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:
hi hello how are you thanks.
FILE2.TXT:
hi hello to you I am fine Your welcome!
file3.txt:
hallo Guten Tag Wie geht es dir Danke.
Q1。 如何显示哈希值?
使用没有任何选项的命令来显示散列值和文件名。
md5sum file1.txt
以下是我们系统上生成的这个命令的输出:
[Documents]$ md5sum file1.txt 1ff38cc592c4c5d0c8e3ca38be8f1eb1 file1.txt [Documents]$
输出也可以使用--tag选项以BSD格式显示。
md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt MD5 (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 hashes file1.txt: OK file2.txt: OK file3.txt: OK [Documents]$
现在我们将更改file3.txt,在文件末尾添加一个感叹号,然后重新运行该命令。
echo "!" >> file3.txt
md5sum --check hashes
[Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$
你可以看到file3.txt已经改变了。
Q3。 如何只显示修改过的文件?
如果您有许多文件需要检查,您可能只想显示已更改的文件。 使用“--quiet”选项,md5sum将只列出已经改变的文件。
md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$
Q4。 如何检测脚本中的更改?
您可能想要在脚本中使用md5sum。 使用“--status”选项,md5sum将不会打印任何输出。 相反,如果没有更改,状态码将返回0,如果文件不匹配,则返回1。 以下脚本hashes.sh将在状态码中返回1,因为文件已经更改。 脚本文件如下:
sh hashes.sh
hashes.sh: #!/bin/bash md5sum --status --check hashes Result=$? echo "File check status is: $Result" exit $Result [Documents]$ sh hashes.sh File check status is: 1 [lion@ornatecandy Documents]$
Q5。 如何识别无效的哈希值?
当比较文件时,md5sum可以让你知道是否有无效的散列。 要警告你,如果任何散列值不正确,你可以使用--warn选项。 对于最后一个例子,我们将使用sed在第三行的开头插入一个额外的字符。 这将改变文件哈希中的哈希值,使其无效。
sed -i '3s/.*/a&/' hashes
md5sum --warn --check hashes
这表明第三行有一个无效的散列。
[Documents]$ sed -i '3s/.*/a&/' hashes [Documents]$ md5sum --warn --check hashes file1.txt: OK file2.txt: OK md5sum: hashes: 3: improperly formatted MD5 checksum line md5sum: WARNING: 1 line is improperly formatted [Documents]$
结论
md5sum是一个简单的命令,可以快速验证一个或多个文件,以确定是否有任何文件已经从原始文件更改。 有关md5sum的更多信息,请参见手册页。