是的,星号
*
在这个命令中是必需的。看一下这个例子。
这是一个二进制文件,假设正确的 md5sum 值是
exampleofcorrectmd5value00000000
(32个十六进制字符)。
[root@Linux update]# ls -lh
total 137M
-rw-r--r-- 1 root root 137M Nov 5 13:01 binary-file.run.tgz
[root@Linux update]#
-c,--check
从文件中读取MD5值并进行校验
如果MD5值与二进制文件匹配,则会得到此输出。
[root@Linux ~]# md5sum -c <<< "exampleofcorrectmd5value00000000" *binary-file.run.tgz"
binary-file.run.tgz: OK
[root@Linux ~]#
当md5sum值不匹配时。
[root@Linux update]# md5sum -c <<< "exampleofwrongmd5value0000000000 *binary-file.run.tgz"
binary-file.run.tgz: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
[root@Linux update]#
没有星号
*
,即使md5值是正确的,您也会收到以下错误消息
[root@Linux ~]# md5sum -c <<< "exampleofcorrectmd5value00000000 binary-file.run.tgz"
md5sum: standard input: no properly formatted MD5 checksum lines found
[root@Linux ~]#
如果md5sum中没有32个十六进制字符,你也会得到相同的错误信息。在这个例子中,它只有31个字符。
[root@Linux ~]# md5sum -c <<< "exampleofmd5valuelessthan32char *binary-file.run.tgz"
md5sum: standard input: no properly formatted MD5 checksum lines found
[root@Linux ~]#
处理多个文件的解决方案
如果您有很多文件并且希望自动化处理过程,可以按照以下步骤进行操作:
user@Ubuntu:~$ ls -lh
total 12K
-rw-rw-r-- 1 user user 4 Nov 5 14:54 file-a
-rw-rw-r-- 1 user user 4 Nov 5 14:54 file-b
-rw-rw-r-- 1 user user 4 Nov 5 14:54 file-c
user@Ubuntu:~$
为每个文件生成md5sum并将其保存到md5sum.txt中
user@Ubuntu:~$ md5sum * | tee md5sum.txt
0bee89b07a24ae27c83fc3d5951213c1 file-a
1b2297c171a9a450d184871ccf6c9ad4 file-b
7f4d13d9b0b6ac086fd68637067435c5 file-c
user@Ubuntu:~$
要检查所有文件的md5sum,请使用以下命令。
user@Ubuntu:~$ md5sum -c md5sum.txt
file-a: OK
file-b: OK
file-c: OK
user@Ubuntu:~$
如果md5sum值与文件不匹配,这是一个例子。在这种情况下,我将修改
file-b
的内容。
user@Ubuntu:~$ echo "new data" > file-b
user@Ubuntu:~$
看,这是错误信息。希望能帮到你。
user@Ubuntu:~$ md5sum -c md5sum.txt
file-a: OK
file-b: FAILED
file-c: OK
md5sum: WARNING: 1 computed checksum did NOT match
user@Ubuntu:~$