是否可以在 shell 中生成校验和 (md5) 字符串?
Is it possible to generate a checksum (md5 ) a string in a shell?
我想要文件名的唯一 ID,以便我可以遍历 ID 并比较文件的校验和?
是否可以对文件名进行校验和,以便我可以为每个文件名提供唯一的 ID?
我欢迎其他想法。
是你想要的吗?
纯字符串:
serce@unit:~$ echo "Hello, checksum!" | md5sum
9f898618b071286a14d1937f9db13b8f -
和文件内容:
serce@unit:~$ md5sum agent.yml
3ed53c48f073bd321339cd6a4c716c17 -
是的,可以使用 md5sum
和 basename [=13=]
给出当前文件的名称
假设我有如下命名的脚本 md5Gen.sh
#!/bin/bash
mdf5string=$(basename "[=10=]" | md5sum )
echo -e `basename "[=10=]"` $mdf5string
运行 脚本会给我
md5Gen.sh 911949bd2ab8467162e27c1b6b5633c0 -
是的,可以获取字符串的MD5:
$ printf '%s' "This-Filename" | md5sum
dd829ba5a7ba7bdf7a391f2e0bd7cd1f -
重要的是要了解打印字符串末尾没有换行符。 bash 中的等效项是使用 echo -n
:
$ echo -n "This-Filename" | md5sum
dd829ba5a7ba7bdf7a391f2e0bd7cd1f -
-n
(在 bash 中有效)很重要,否则您的散列会因包含不属于文本一部分的换行符而改变:
$ echo "This-Filename" | md5sum
7ccba9dffa4baf9ca0e56c078aa09a07 -
这也适用于文件内容:
$ echo -n "This-Filename" > infile
$ md5sum infile
dd829ba5a7ba7bdf7a391f2e0bd7cd1f infile
$ echo "This-Filename" > infile
$ md5sum infile
7ccba9dffa4baf9ca0e56c078aa09a07 infile
我想要文件名的唯一 ID,以便我可以遍历 ID 并比较文件的校验和? 是否可以对文件名进行校验和,以便我可以为每个文件名提供唯一的 ID? 我欢迎其他想法。
是你想要的吗?
纯字符串:
serce@unit:~$ echo "Hello, checksum!" | md5sum
9f898618b071286a14d1937f9db13b8f -
和文件内容:
serce@unit:~$ md5sum agent.yml
3ed53c48f073bd321339cd6a4c716c17 -
是的,可以使用 md5sum
和 basename [=13=]
给出当前文件的名称
假设我有如下命名的脚本 md5Gen.sh
#!/bin/bash
mdf5string=$(basename "[=10=]" | md5sum )
echo -e `basename "[=10=]"` $mdf5string
运行 脚本会给我
md5Gen.sh 911949bd2ab8467162e27c1b6b5633c0 -
是的,可以获取字符串的MD5:
$ printf '%s' "This-Filename" | md5sum
dd829ba5a7ba7bdf7a391f2e0bd7cd1f -
重要的是要了解打印字符串末尾没有换行符。 bash 中的等效项是使用 echo -n
:
$ echo -n "This-Filename" | md5sum
dd829ba5a7ba7bdf7a391f2e0bd7cd1f -
-n
(在 bash 中有效)很重要,否则您的散列会因包含不属于文本一部分的换行符而改变:
$ echo "This-Filename" | md5sum
7ccba9dffa4baf9ca0e56c078aa09a07 -
这也适用于文件内容:
$ echo -n "This-Filename" > infile
$ md5sum infile
dd829ba5a7ba7bdf7a391f2e0bd7cd1f infile
$ echo "This-Filename" > infile
$ md5sum infile
7ccba9dffa4baf9ca0e56c078aa09a07 infile