侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux md5sum命令教程:如何计算和验证文件MD5哈希值确保数据完整性(附实例教程和注意事项)

Linux md5sum命令介绍

md5sum(Message-Digest Algorithm 5)是一个用于计算和验证文件md5哈希值的工具。md5是一种广泛使用的密码散列函数,能为任何一段文本或文件生成一个128位(16字节)的散列值。虽然md5不再是一种安全的加密方式,它在检查文件完整性方面仍然非常有用,特别是用于验证长时间传输或存储的文件是否发生了改变。

Linux md5sum命令适用的Linux版本

md5sum工具在多数Linux发行版中都是可用的,包括但不限于Ubuntu、Debian、Fedora、CentOS等。在某些较旧的系统或者定制的发行版中,如果md5sum不可用,可能需要安装它。

  • 在基于Debian的系统中,可以使用以下命令安装:

    sudo apt-get install coreutils
    ```
    
    
  • 在CentOS 7中,可以使用以下命令安装:

    sudo yum install coreutils
    ```
    
    
  • 在CentOS 8中,可以使用以下命令安装:

    sudo dnf install coreutils
    ```
    

如果发现bash: md5sum: command not found错误,可以根据上面的指引进行安装。

Linux md5sum命令的基本语法

语法格式:

md5sum [OPTION]... [FILE]...

Linux md5sum命令的常用选项或参数说明

选项描述
-b, --binary以二进制模式读取输入文件(默认选项)
-c, --check读取md5和文件名的列表,并检查所有文件的md5是否匹配
--tag创建一个符合BSD风格的校验和
-t, --text以文本模式读取输入文件
--quiet在校验模式下,不输出任何通过校验的文件,只报告失败的文件
--zero当结合--check使用时,校验文件中的文件名以NUL字符结束
--help显示帮助信息并退出
--version输出版本信息并退出

Linux md5sum命令的实例

实例1:计算文件的md5哈希值

计算指定文件的md5哈希值,并显示结果。

[linux@bashcommandnotfound.cn ~]$ md5sum example.txt

实例2:校验文件的md5哈希值

通过比较文件和校验和文件中的md5值来校验文件的完整性。

[linux@bashcommandnotfound.cn ~]$ md5sum -c checksums.md5

实例3:在校验时忽略成功的消息

只显示校验失败的文件,不显示成功的消息。

[linux@bashcommandnotfound.cn ~]$ md5sum --quiet -c checksums.md5

实例4:生成符合BSD风格的校验和

创建一个符合BSD风格的校验和输出格式。

[linux@bashcommandnotfound.cn ~]$ md5sum --tag example.txt

实例5:计算多个文件的md5哈希值

一次计算多个文件的md5哈希值。

[linux@bashcommandnotfound.cn ~]$ md5sum file1.txt file2.txt file3.txt

实例6:递归计算目录中所有文件的md5哈希值

使用find命令配合md5sum来递归计算某个目录下所有文件的md5哈希值。

[linux@bashcommandnotfound.cn ~]$ find /path/to/directory -type f -exec md5sum {} +

实例7:保存多个文件的md5哈希值到文件

计算一个或多个文件的md5哈希值,并将结果保存到一个文件中。

[linux@bashcommandnotfound.cn ~]$ md5sum file1.txt file2.txt > md5sums.txt

实例8:从标准输入计算md5哈希值

计算来自标准输入(stdin)的数据的md5哈希值。

[linux@bashcommandnotfound.cn ~]$ echo -n "Hello World" | md5sum

实例9:验证下载文件的md5哈希值

下载文件后,使用md5sum验证其哈希值以确保文件完整性。

[linux@bashcommandnotfound.cn ~]$ wget http://example.com/file.zip
[linux@bashcommandnotfound.cn ~]$ echo "expected_md5_hash_value file.zip" | md5sum -c -

实例10:批量检查md5哈希值

检查一个目录下所有文件与预先保存的md5哈希值列表是否匹配。

[linux@bashcommandnotfound.cn ~]$ md5sum -c md5sums.txt

实例11:排除特定文件进行md5校验

使用find命令排除特定文件或目录,只为其他文件计算md5。

[linux@bashcommandnotfound.cn ~]$ find /path/to/directory -type f ! -name 'exclude.txt' -exec md5sum {} +

实例12:结合xargs使用md5sum

使用findxargs命令来处理大量文件的情况。

[linux@bashcommandnotfound.cn ~]$ find /path/to/directory -type f -print0 | xargs -0 md5sum

实例13:生成校验文件并在不同目录校验

在一个目录生成md5校验文件,然后在另一个目录校验文件。

# 在source目录生成md5校验文件
[linux@bashcommandnotfound.cn ~]$ md5sum /source/path/* > /source/path/md5sums.txt

# 在destination目录校验
[linux@bashcommandnotfound.cn ~]$ cd /destination/path
[linux@bashcommandnotfound.cn ~]$ md5sum -c /source/path/md5sums.txt

实例14:使用循环来计算多个文件的md5哈希值

在一个脚本中使用循环为目录中的每个文件单独计算md5。

[linux@bashcommandnotfound.cn ~]$ for file in /path/to/directory/*; do md5sum "$file"; done

实例15:结合awk输出特定格式的md5值

使用md5sumawk来输出文件名和其md5值的特定格式。

[linux@bashcommandnotfound.cn ~]$ md5sum file.txt | awk '{print $1}'

Linux md5sum命令的注意事项

  • md5算法已经不再被认为是安全的加密方式,因此不应用于安全敏感的数据验证。
  • 当处理非文本和二进制文件时,要注意选择正确的模式(二进制或文本),尤其是在不同操作系统之间转移文件时。
  • 在使用-c选项进行校验时,确保校验和文件的格式正确,否则md5sum可能无法正确解析。
  • 使用md5sum校验大文件时,可能会需要较长的时间,尤其是在计算能力较低的系统上。
  • 如果遇到bash: md5sum: command not found错误,请根据您的Linux发行版安装coreutils包。
0

评论区