如何验证雪豹中的 .md5sum 文件?

tap*_*123 6 osx-snow-leopard md5 macos

在雪豹中有可以做 md4 校验和的程序。如何验证 .md5 文件?

Hyp*_*ppy 5

在 OSX 中,它只是 md5 或 openssl md5

md5 /path/to/file
Run Code Online (Sandbox Code Playgroud)

或者

openssl md5 /path/to/file
Run Code Online (Sandbox Code Playgroud)

编辑澄清:然后您将 md5 命令的输出与 .md5sum 文件中的值进行比较以验证文件是否相同。


Flo*_*ley 5

我给你看两种方法,

  1. 一个更容易,意味着安装额外的软件,
  2. 另一种方法是编写一个小脚本来自动化校验和。

1. 安装 GNU md5:

http://www.macports.org为您的系统获取 macports并安装基本包。然后,安装端口“md5sha1sum”,它具有选项“-c”来读取包含校验和的文件并将文件与其进行比较。

或者,2.用你所拥有的来做:

我假设您有以下形式的 MD5 校验和文件:

0fd81f886638a12ed9efe4fd8b44187d  dir1/dir2/file4
bc2a22d0fee688065ea19e44dae88e19  dir1/file3
fa9b969a22077e46131cdd6b602a208c  dir3/file5
5c4a2bdccf48c3e7bf7489f24ac5fcb1  file1
7e06cbbb761e90e2e059657927b43f5c  file2
Run Code Online (Sandbox Code Playgroud)

(注意分隔符是2个空格)

现在,使用 openssl 在本地创建新的 MD5 校验和,例如:

find * -type f | xargs openssl md5 >openssl-md5

这将产生

MD5(dir1/dir2/file4)= 0fd81f886638a12ed9efe4fd8b44187d
MD5(dir1/file3)= bc2a22d0fee688065ea19e44dae88e19
MD5(dir3/file5)= fa9b969a22077e46131cdd6b602a208c
MD5(file1)= 5c4a2bdccf48c3e7bf7489f24ac5fcb1
MD5(file2)= 7e06cbbb761e90e2e059657927b43f5c
Run Code Online (Sandbox Code Playgroud)

输出是不同的,但您可以将其变形以匹配 GNU md5 的内容:

cat openssl-md5 | sed -e 's/^MD5(\(.*\))= \(.*\)/\2 \1/'

0fd81f886638a12ed9efe4fd8b44187d  dir1/dir2/file4
bc2a22d0fee688065ea19e44dae88e19  dir1/file3
fa9b969a22077e46131cdd6b602a208c  dir3/file5
5c4a2bdccf48c3e7bf7489f24ac5fcb1  file1
7e06cbbb761e90e2e059657927b43f5c  file2
Run Code Online (Sandbox Code Playgroud)

这为您提供了一个校验和文件以与原始校验和文件进行比较。做一个差异,你就完成了;-)


tap*_*123 2

解决方案很简单:

port install cfv
Run Code Online (Sandbox Code Playgroud)

并阅读手册

  • 其实他的答案是最好的。cfv可以创建md5,也可以验证它们。当我有大量文件时,为什么要进行手动比较?感谢你的回答。 (2认同)