检查Alpine中的文件校验和

时间:2016-05-27 16:47:14

标签: bash docker alpine

我遇到了阿尔卑斯山这个奇怪的问题。我想检查bash控制台内文件的校验和。它在CentOS下工作但不在Alpine下工作。错误在哪里?

在CentOS下

$ sha1sum /bin/tini
fa23d1e20732501c3bb8eeeca423c89ac80ed452  /bin/tini
$ echo "fa23d1e20732501c3bb8eeeca423c89ac80ed452 /bin/tini" | sha1sum -c -
/bin/tini: OK

在阿尔卑斯山下

$ sha1sum /bin/tini
fa23d1e20732501c3bb8eeeca423c89ac80ed452  /bin/tini
$ echo "fa23d1e20732501c3bb8eeeca423c89ac80ed452 /bin/tini" | sha1sum -c -
sha1sum: WARNING: 1 of 1 computed checksums did NOT match

1 个答案:

答案 0 :(得分:7)

您可以尝试在校验和和路径之间添加1个空格(总共2个):

$ echo "fa23d1e20732501c3bb8eeeca423c89ac80ed452  /bin/tini" | sha1sum -c -

我尝试过/bin/busybox

# sha1sum /bin/busybox
71bdaf6e52759f7f277c89b694c494f472ca2dfb  /bin/busybox
# echo '71bdaf6e52759f7f277c89b694c494f472ca2dfb /bin/busybox' | sha1sum -c -
sha1sum: WARNING: 1 of 1 computed checksums did NOT match
# echo '71bdaf6e52759f7f277c89b694c494f472ca2dfb  /bin/busybox' | sha1sum -c -
/bin/busybox: OK

错误是因为sha1sum在使用-c调用时需要将自己的输出作为输入,并且其输出使用2个空格。