md5sum命令可校验文件完整性,输出32位md5哈希值,支持单文件校验、批量校验及脚本化使用,但因碰撞风险不适用于安全敏感场景,高安全性需求应改用sha256sum。

直接用 md5sum 命令就能检查,系统基本都自带,不用额外安装。关键不是“能不能运行”,而是结果准不准、比对靠不靠谱。
查看单个文件的 MD5 值
运行:md5sum filename
输出形如:d41d8cd98f00b204e9800998ecf8427e filename
左边是 32 位小写十六进制哈希值,右边是文件路径。
- 路径含空格或中文,必须加英文引号,例如:
md5sum "my file.txt" - 只想要纯哈希值(比如用于脚本),加管道:
md5sum file.log | cut -d' ' -f1 - 别对目录、符号链接或
/dev/sda这类设备文件直接运行,会失败;先确认是普通文件:test -f filename && md5sum filename
用校验文件批量验证多个文件
先生成校验清单(建议在目标目录下执行):md5sum *.zip > checksums.md5
再校验:md5sum -c checksums.md5
- 校验时必须在和清单里路径一致的目录下运行,否则报
file not found而不是FAILED - 如果清单是 Windows 下编辑保存的(含 CRLF 换行符),Linux 下会静默失败,先转格式:
dos2unix checksums.md5 - 权限不足不会提示
Permission denied,只会显示FAILED;可单独用ls -l检查读取权限
校验时控制输出行为
md5sum -c 默认每行输出 filename: OK 或 filename: FAILED。
但自动化脚本中不该依赖屏幕输出,而要看退出码:
- 加
--status:完全不输出,仅靠退出状态判断——0表示全通过,1表示有失败,2表示读取错误 - 加
--warn:对校验文件里格式不规范的行(比如少空格、多星号)给出警告 - 加
--quiet:成功时不输出OK,只显示失败项
注意 MD5 的适用边界
MD5 计算快、输出固定 32 位,适合日常完整性核对或轻量脚本使用。
但它已被证实存在碰撞风险,不适用于安全敏感场景(如签名、认证、密码存储)。
- 高安全性需求请换用
sha256sum,命令用法完全一样,只是哈希更长(64 位)、抗篡改更强 - 若需校验远程发布的文件,优先以官网提供的
.sha256文件为准,而非.md5











