md5 与 md5sum 区别

2者区别是什么?
cat README.md | md5
cat README.md | md5sum

在 Linux 系统中,cat README.md | md5cat README.md | md5sum 的区别主要体现在以下几个方面:

1. 命令的可用性

  • md5 是某些系统(如 macOS)中提供的命令,用于计算文件或输入数据的 MD5 哈希值。
  • md5sum 是类 UNIX 系统(如 Linux)中常用的工具,用于生成和校验 MD5 校验和 。

因此,md5md5sum 是两个不同的命令,分别适用于不同的操作系统。


2. 输出格式

  • md5 的输出通常更简洁,直接显示哈希值。例如: MD5 (stdin) = d41d8cd98f00b204e9800998ecf8427e
  • md5sum 的输出则遵循特定的格式,通常是哈希值后跟一个空格和文件标识符(如 - 表示标准输入)。例如: d41d8cd98f00b204e9800998ecf8427e -

这种格式差异使得 md5sum 更适合用于批量校验文件完整性,因为它可以直接与 --check 参数配合使用 。


3. 功能扩展

  • md5sum 提供了更多功能,比如支持通过 --check 参数验证文件的完整性。例如: bash cat README.md | md5sum > sumfile cat README.md | md5sum --check sumfile 输出结果会显示校验是否通过: -: OK
  • md5 则相对简单,通常只用于生成哈希值,不提供类似的校验功能。

4. 兼容性和可移植性

  • 如果你在跨平台环境中工作(如 macOS 和 Linux),需要注意两者可能无法互换使用。对于需要更高兼容性的脚本,建议优先使用 md5sum,因为它是大多数 Linux 发行版的标准工具。

总结

  • cat README.md | md5:适用于 macOS 或其他支持 md5 命令的系统,输出简洁但功能有限。
  • cat README.md | md5sum:适用于类 UNIX 系统(如 Linux),功能更强大,支持校验等高级操作。

如果你不确定当前系统支持哪个命令,可以通过 man md5man md5sum 查看具体文档。