我在想这可能是将shasumdiff与管道或其他东西组合在一起...

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

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

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

最佳答案

您可以在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' ;
}

关于macos - 使用OS X bash比较剪贴板中的sha1校验和与本地文件的sha1的最快方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36382599/

10-10 03:55