md5sum的使用及高级使用详解


md5sum 是一个常用的工具,用于计算和校验文件的 MD5 校验值。MD5 校验值是一种 128 位哈希值, 用于验证文件的完整性,确保文件在传输或存储过程中未被篡改或损坏。以下是 md5sum 的基本用法及高级技巧。

1. 基本用法

(1) 计算单个文件的 MD5 值

md5sum filename

输出格式如下:

d41d8cd98f00b204e9800998ecf8427e  filename
  • d41d8cd98f00b204e9800998ecf8427e 是文件的 MD5 哈希值。
  • filename 是文件名。

(2) 批量计算多个文件的 MD5 值

md5sum file1 file2 file3

输出示例:

d41d8cd98f00b204e9800998ecf8427e  file1
e99a18c428cb38d5f260853678922e03  file2
ab56b4d92b40713acc5af89985d4b786  file3

(3) 将 MD5 值保存到文件
可以将 MD5 校验值导出到一个校验文件(通常以 .md5 结尾),方便以后校验:

md5sum file1 file2 > files.md5

生成的 files.md5 文件内容示例:

d41d8cd98f00b204e9800998ecf8427e  file1
e99a18c428cb38d5f260853678922e03  file2

(4). 校验文件的完整性 (非常好)
若已有一个校验文件(如 files.md5),可以用以下命令验证这些文件是否完整:

md5sum -c files.md5

输出示例:

file1: OK
file2: OK
file3: FAILED
  • OK 表示校验成功,文件未损坏。
  • FAILED 表示文件不匹配,可能损坏或被篡改。

2 高级用法

(1). 校验指定路径的文件
如果文件路径较长或者文件名复杂,可以用相对路径或绝对路径进行校验。例如:

md5sum /path/to/file > checksum.md5
md5sum -c checksum.md5

(2). 校验子目录中的所有文件
如果文件分布在多个子目录中,可以结合 find 命令对所有文件生成 MD5 校验值:

find . -type f -exec md5sum {
   
   } + > all_files.md5
  • find . -type f 查找当前目录下的所有文件。
    --exec md5sum {} +对每个文件计算 MD5 值。

生成的 all_files.md5 可用于后续校验:

md5sum -c all_files.md5

(3) 比较两个文件是否相同

md5sum file1 file2

如果两个文件的 MD5 值相同,则文件内容完全一致。

(4). 从网络下载后验证文件
许多网站会提供文件的 MD5 校验值供用户验证。下载文件后,可以用 md5sum 对比网站提供的值:

md5sum downloaded_file

将输出的 MD5 值与网站提供的值对比,确认文件未被篡改。

(5) 对大文件逐步计算 MD5 值
对于超大的文件,可以使用 md5sum 结合 split 分块校验每一部分:

  • 1.将大文件分割:
split -b 1G largefile part_

这会将 largefile 切分为 1GB 大小的部分,命名为 part_aa, part_ab 等。

  • 2.计算每部分的 MD5 值
md5sum part_*
  • 3.校验原始文件: 如果需要验证整个文件的 MD5 值,可以使用工具如 cat 将文件拼接回来并计算:
cat part_* > reconstructed_file
md5sum reconstructed_file

(6). 校验多个 .tar 分卷文件
对 .tar 分卷文件,可以使用 md5sum 校验每个分卷是否完整:

针对所有分卷生成 MD5 文件:

md5sum file.part* > pa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@BangBang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值