使用OS X bash将剪贴板中的sha1校验和与本地文件的sha1进行比较的最快方法

时间:2016-04-03 07:10:52

标签: macos bash clipboard checksum

我想也许将shasumdiff与管道或其他东西结合起来......

我想知道将从网站复制到我的剪贴板的sha1校验和与我从同一站点下载的本地文件的sha1校验和进行比较的最快方法,以验证其完整性。

例如,我在Raspberry Pi NOOBS download page的剪贴板中有sha1字符串94f7ee8a067ac57c6d35523d99d1f0097f8dc5cc,我想将它与使用终端应用程序的NOOBS_v1_9_0.zip文件的校验和进行比较,我不想从剪贴板内容创建新文件。

我认为它是bash 3.2(它的OS X 10.11.4)

1 个答案:

答案 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' ; 
}