bash - md5sum 仅输出文件中的散列

标签 bash md5 md5sum

您好,我想在 Linux 上创建一个 bash 文件,它根据备份的 md5 哈希值检查文件的 md5 哈希值,因此我知道原始文件是否已被篡改。该脚本应输出两个文件的 md5 哈希值,然后比较两个创建的哈希文件:

md5sum file1 > file1.md5 | cut -c -32
if [ file1.md5 =! backup.md5 ] then;
   #send email

但是它不起作用,file.md5 中仍然有文件名,有人知道如何只获取 file.md5 的 has 吗?

最佳答案

您的脚本有几个问题。

首先你应用 cut -c -32 之后你已经将 md5sum 输出重定向到 file1.md5,这就是它什么都不做的原因。

你应该像那样重组它,而不是:

md5sum file1 | cut -c -32 > file1.md5

接下来,你不能直接用 =! 比较文件,你必须读取并比较它们的内容,就像这样:

[ "$(cat file1.backup.md5)" != "$(cat file1.real.md5)" ]

还要注意 md5sum 已经有一个“检查模式”,所以你可以简单地这样做:

#Save MD5 sum of your file to backup.md5, in md5sum native format
md5sum file1 > backup.md5

#Later on ...
if ! md5sum -c backup.md5; then
...

关于bash - md5sum 仅输出文件中的散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43679228/

相关文章:

ruby-on-rails - Ruby on Rails使用命令行 ``计算图像的md5

将文本文件转换为 C 字符串 - 使用 md5 进行哈希

java md5 在 javaagent 模式下速度很慢

bash - 在 IntelliJ Idea 中运行 Maven 目标之前运行 bash 脚本

json - 在 Bash 中有效地将 JSON 文件重写为 CSV

ios - 如何在 IOS 中从字符串生成 md5?

linux - 比较Linux中多个文件的文件名和md5sums

salt - 将纯文本密码转换为 MD5 salted hash

java - 将空 shell 变量传递到 Java 命令行会导致 "Error: Could not find or load main class"

linux - 无法在 Jenkins 构建中使用 .bash_profile 的别名