Linux中文件MD5校驗


md5sum命令用於生成文件的md5數字摘要,並可以驗證文件內容是否發生了改變,間接地還可以檢驗兩個文件內容是否完全相同。因為md5sum是讀取文件內容來計算校驗碼的,因此只能驗證文件內容,而無法驗證文件屬性。

[root@xuexi ~]# cp -a /etc/fstab /tmp/fstab

[root@xuexi ~]# cp -a /etc/fstab /tmp/fstab1

生成文件的md5值。

[root@xuexi ~]# md5sum /tmp/fstab /tmp/fstab1
a612cd5d162e4620b442b0ff3474bf98  /tmp/fstab
a612cd5d162e4620b442b0ff3474bf98  /tmp/fstab1

發現這兩個文件md5值完全一樣,也就說明這兩個文件完全相同。

由於生成的md5信息中,每個md5值后都緊跟着對應的文件的路徑(可能是相對路徑),於是將生成的md5保存到某個文件中,以后可以使用該文件來檢查md5值對應文件內容是否發生了修改。

例如,將上述兩個文件的md5信息保存到fs.md5sum中,然后使用"md5sum -c"可以檢查源文件是否完整或是否被修改過。這個檢查是內容上的,權限和屬性等的改變不會影響md5值,所以不會檢測出問題。

[root@xuexi ~]# md5sum /tmp/fstab /tmp/fstab1 >/tmp/fs.md5sum

[root@xuexi ~]# md5sum -c /tmp/fs.md5sum
/tmp/fstab: OK
/tmp/fstab1: OK

修改/tmp/fstab1的內容,然后再檢測。

[root@xuexi tmp]# echo aaa >>/tmp/fstab1

[root@xuexi tmp]# md5sum -c /tmp/fs.md5sum
/tmp/fstab: OK
/tmp/fstab1: FAILED
md5sum: WARNING: 1 of 2 computed checksums did NOT match

當使用了"-c"選項時,還支持以下選項:

--quiet:不顯示驗證結果為OK的記錄

--status:完全不顯示任何信息,只能通過命令的退出狀態碼判斷驗證結果是否有failed。只要有一條failed記錄,則狀態碼為1,否則為0。

[root@xuexi tmp]# md5sum --status -c /tmp/fs.md5sum
[root@xuexi tmp]#
echo $? 1

通過比較md5sum的值,可以判斷出多個文件的內容是否完全一致,但肉眼判斷並不方便,所以寫出腳本批量判斷。腳本見:shell腳本示例:批量比較多個文件的內容是否相同


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM