任何人都知道为什么BSD md5程序以这种格式产生哈希输出......
MD5 (checksum.md5) = 9eb7a54d24dbf6a2eb9f7ce7a1853cd0
Run Code Online (Sandbox Code Playgroud)
...而GNU md5sum会产生更合理的格式吗?
9eb7a54d24dbf6a2eb9f7ce7a1853cd0 checksum.md5
Run Code Online (Sandbox Code Playgroud)
据我所知,md5sum格式更容易解析,更有意义.你怎么md5sum -check用md5?什么-p,-q,-r,-t,-x选项意味着什么?man md5对这些选择一无所知!:|
我猜是历史原因.同时,-q抑制"MD5(...)="输出,所以md5 -q checksum.md5给出
9eb7a54d24dbf6a2eb9f7ce7a1853cd0
如果md5没有给出任何参数并且它从stdin读取,则暗示这一点.不幸的是,在这种情况下,md5sum在校验和后面留下" - "("9eb7a54d24dbf6a2eb9f7ce7a1853cd0 - "),所以如果你正在寻找一些通用函数来返回校验和,那么可能会有所帮助:
checksum() {
(md5sum <"$1"; test $? = 127 && md5 <"$1") | cut -d' ' -f1
}
checksum /etc/hosts
FreeBSD的手册页说明了这些论点
-p Echo stdin to stdout and append the checksum to stdout.Run Code Online (Sandbox Code Playgroud)-q Quiet mode ? only the checksum is printed out. Overrides the -r option. -r Reverses the format of the output. This helps with visual diffs. Does nothing when combined with the -ptx options. -t Run a built?in time trial. -x Run a built?in test script.
在当前的 OS X BSD 系统上,您可以指定md5 -r命令来获得预期的输出。
sgwilbur@gura:/vms/DevOps-v3.4$ md5 vmware*
MD5 (vmware-0.log) = 61ba1d68a144023111539abee08f4044
MD5 (vmware-1.log) = 97bc6f22b25833c3eca2b2cc40b83ecf
MD5 (vmware-2.log) = f92a281102710c4528d4ceb88aa0ac9b
MD5 (vmware.log) = 1f7858d361929d4bc5739931a075c0ad
Run Code Online (Sandbox Code Playgroud)
添加md5 -r开关使输出看起来更像我期望的那样,并且更容易与从 Linux 机器生成的 linux md5 总和进行比较。
sgwilbur@gura:/vms/DevOps-v3.4$ md5 -r vmware*
61ba1d68a144023111539abee08f4044 vmware-0.log
97bc6f22b25833c3eca2b2cc40b83ecf vmware-1.log
f92a281102710c4528d4ceb88aa0ac9b vmware-2.log
1f7858d361929d4bc5739931a075c0ad vmware.log
Run Code Online (Sandbox Code Playgroud)
这对我来说是最简单的方法,它很容易与linux 机器上的md5sum命令生成的输出区分开来。
| 归档时间: |
|
| 查看次数: |
9758 次 |
| 最近记录: |