我想也许将shasum
和diff
与管道或其他东西结合起来......
我想知道将从网站复制到我的剪贴板的sha1校验和与我从同一站点下载的本地文件的sha1校验和进行比较的最快方法,以验证其完整性。
例如,我在Raspberry Pi NOOBS download page的剪贴板中有sha1字符串94f7ee8a067ac57c6d35523d99d1f0097f8dc5cc
,我想将它与使用终端应用程序的NOOBS_v1_9_0.zip
文件的校验和进行比较,我不想从剪贴板内容创建新文件。
我认为它是bash 3.2(它的OS X 10.11.4)
答案 0 :(得分:5)
你可以在bash中使用这样的命令:
if [[ $(pbpaste) == $(shasum file | awk '{print $1}') ]]; then echo 'matches'; fi
使用它可以创建这样的函数(例如,将其添加到~/.bash_profile
):
shachk () {
if [[ $(pbpaste) == $(shasum "$@" | awk '{print $1}') ]]; then echo 'match'; fi ;
}
所以在命令行上你可以输入:
$ shachk somefile
然后它会将它与您的粘贴板上的哈希进行比较。
编辑:稍微改进版本的函数,它返回文件路径,匹配/失败,并为输出着色。
shachk() {
[[ $(pbpaste) == $(shasum "$@" | awk '{print $1}') ]] \
&& echo $1 == $(pbpaste) $'\e[1;32mMATCHES\e[0m' && return; \
echo $1 != $(pbpaste) $'\e[1;31mFAILED\e[0m' ;
}