在 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 文件中的值进行比较以验证文件是否相同。
我给你看两种方法,
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)
这为您提供了一个校验和文件以与原始校验和文件进行比较。做一个差异,你就完成了;-)
解决方案很简单:
port install cfv
Run Code Online (Sandbox Code Playgroud)
并阅读手册