在macOS中,如何从"shasum"获取不带文件名的SHA256文件哈希值?

4
在 macOS(Mojave)上,“shasum”命令是否有一个选项,只返回哈希值而不包括文件名?
$ shasum -a 256 archive.tar.gz
35fe34e225a06d......00e72ee61a437b7226f9f   archive.tar.gz

以下是我在macOS默认状态(无需安装其他软件)下使用的临时解决方案:

$ shasum -a 256 archive.tar.gz | awk '{ print $1 }'
35fe34e225a06d......00e72ee61a437b7226f9f

$ php -r "echo hash_file('sha256', 'archive.tar.gz'), PHP_EOL;"
35fe34e225a06d......00e72ee61a437b7226f9f

不过,如果有相应的命令选项,我希望能够更简单地操作。

是否有任何命令选项可供使用,还是我必须创建一个解决方法的别名?

1个回答

5

数组赋值的工作方式如下:

sha=($(shasum -a 256 archive.tar.gz))
echo $sha
35fe34e225a06d......00e72ee61a437b7226f9f

您可以使用“cut”命令:
shasum -a 256 archive.tar.gz | cut -f1 -d' '
35fe34e225a06d......00e72ee61a437b7226f9f

3
或者使用以下任一方法来获取文件的 SHA256 值:sed 's/[[:space:]].*$//' < <(shasum -a 256 filename)awk '{print $1}' < <(shasum -a 256 filename) 或参数扩展 v=$(shasum -a 256 filename); echo ${v/[[:space:]]*/} - David C. Rankin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接