迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Bash md5sum 命令

作者:迹忆客 最近更新:2023/05/16 浏览次数:

本篇文章介绍如何在 Bash 中使用 md5sum 命令。


Bash md5sum 命令

md5sum 命令打印给定文件的 32 字符和 128 位校验和。 该命令使用MD5算法将文件转换为hash; 此命令的语法如下。

md5sum [OPTION]... [FILEPATH]...

让我们尝试对具有以下内容的文本文件运行一个简单的 md5sum 命令:

Hello! this is md5sum command checking from jiyik.com

文件名为jiyik1; 该文件的 md5sum 命令将是:

md5sum jiyik1.txt

上面的命令会将文件 jiyik1.txt 转换为 md5 哈希。 查看结果:

7a09013df4a60cc5eda609d03008c547  jiyik1.txt

我们还可以使用 --tag 选项以 BSD 格式显示此输出。

md5sum --tag jiyik1.txt

此命令的输出将是:

MD5 (jiyik1.txt) = 7a09013df4a60cc5eda609d03008c547

md5sum 有许多不同的选项可供使用。 见下表。

左列 右列
-b 用于以二进制方式读取结果。
-c 用于从给定文件中读取 MD5,然后检查它们。
–tag 用于获取 BSD 风格校验和的输出。
-t 用于以文本模式阅读,这也是默认设置。
–ignore-missing 用于忽略丢失文件的报告状态。
–quiet 用于停止为每个成功验证的文件打印 OK。
–status 用于停止状态代码显示成功的任何内容的输出。
–strict 用于对格式不正确的校验和文件从非零值退出。
-w 用于警告格式不正确的校验和文件。

md5sum 命令可以以不同的方式使用,包括一次对多个文件使用 md5,仅显示修改的文件,以及识别无效的哈希值。


在 Bash 中一次对多个文件使用 md5sum

md5sum 也可用于同时验证多个文件。 让我们再创建两个文本文件,然后尝试一次验证所有三个文件。

jiyik2.txt:

Hello! this is md5sum command checking from jiyik.com file 2
jiyik3.txt:

Hello! this is md5sum command checking from jiyik.com file 3

现在一次获取多个文件的哈希的命令是:

md5sum jiyik1.txt jiyik2.txt jiyik3.txt > hashes

上面的命令只会将文件转换为散列而不显示输出。 要显示输出,我们需要运行以下命令:

md5sum --check hashes

上面的命令将显示文件是否成功转换为哈希。 查看输出:

jiyik1.txt: OK
jiyik2.txt: OK
jiyik3.txt: OK

在 Bash 中使用 md5sum 显示修改后的文件

md5sum 命令还可以在对多个文件应用 md5sum 时显示修改后的文件。 首先,要修改文件,请使用以下命令:

echo "!" >> jiyik1.txt

以上命令将修改文件jiyik1.txt。 现在让我们使用 md5sum 选项显示修改后的文件。

看命令:

md5sum --quiet --check hashes

上面的命令将查找修改过的文件并在输出中打印名称。 查看输出:

jiyik1.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

使用 md5sum 识别 Bash 中的无效哈希值

我们还可以使用带选项的 md5sum 命令来识别无效文件。 为此,我们使用 -warn 选项和 sed 命令插入额外的字符以使文件无效。

看第一条命令:

sed -i '1s/.*/a&/' hashes

上面的命令会将提取字符添加到输出的第一行。 查看此命令的输出:

sed: -e expression #1, char 2: extra characters after command

现在让我们使用带有 --warn 选项的 md5sum 命令检查无效的哈希值。 看命令:

md5sum --warn --check hashes

以上将在输出中显示具有无效哈希值的文件。 查看输出:

jiyik1.txt: FAILED
jiyik2.txt: OK
jiyik3.txt: OK
md5sum: WARNING: 1 computed checksum did NOT match

在 Bash 中获取没有文件名的 md5sum 输出

正如我们所见,md5sum 返回带有文件名的哈希输出,但有时需要获取没有文件名的输出,以便我们进一步使用它。 解决这个问题的方法是 awk 命令,一种用于文本处理、数据提取和报告工具的特定领域语言。

按照以下几点在 Bash 中获取没有文件名的输出:

我们将输出分配给一个变量。

首先,我们对给定的文件运行 md5sum,使用 awk 命令并打印 $1。

看命令:

DemoMD5= md5sum jiyik1.txt | awk '{ print $1 }'

以上只会返回 md5sum 输出的哈希输出。

输出:

698ac7ad395a9c887b1abf3c9ded7abe

如果不想使用 awk 命令,还有一种方法,我们可以直接从 md5sum 中获取 hash 输出,而不需要文件名。 我们将 md5sum 输出分配给一个数组,然后打印它。

查看命令:

DemoMD5=($(md5sum jiyik1.txt))
echo $DemoMD5

上面的命令也将直接得到没有文件名的散列输出 md5sum。 查看输出:

698ac7ad395a9c887b1abf3c9ded7abe

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Bash 脚本中执行变量中的命令

发布时间:2023/05/18 浏览次数:106 分类:操作系统

本篇文章是关于将 Bash 命令存储在一个变量中,然后直接从这个变量中执行它。 首先,我们将讨论执行变量中包含的命令的多种方法,然后是几个脚本示例。

Bash 变量相乘

发布时间:2023/05/18 浏览次数:50 分类:操作系统

本篇文章介绍如何在 Bash 中将两个变量相乘。在 Bash 中乘以变量。将两个变量相乘在 Bash 中是一个简单的操作。

如何在 CentOS 中获取 IP 地址

发布时间:2023/05/04 浏览次数:109 分类:操作系统

这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。

在 Linux 中更新 YUM

发布时间:2023/05/04 浏览次数:86 分类:操作系统

本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。

在 Linux 中安装 Deb 文件

发布时间:2023/05/04 浏览次数:133 分类:操作系统

本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。

Linux 中的 lsof 命令

发布时间:2023/05/04 浏览次数:84 分类:操作系统

在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便