shell命令--md5sum


shell命令--md5sum

0、md5sum命令的專屬圖床

點此快速打開文章圖床_shell命令md5sum

1、md5sum命令的功能說明

​ 在網絡傳輸、設備之間轉存、復制大文件等時,可能會出現傳輸前后數據不一致的情況。這種情況在網絡這種相對更不穩定的環境中,容易出現。那么校驗文件的完整性,也是勢在必行的。md5sum 命令用於生成和校驗文件的 md5 值。它會逐位對文件的內容進行校驗。是文件的內容,與文件名無關,也就是文件內容相同,其 md5 值相同。md5 值是一個 128 位的二進制數據,轉換成16 進制則是 32(128/4)位的進制值。md5 校驗,有很小的概率不同的文件生成的 md5 可能相同。比 md5 更安全的校驗算法還有 SHA*系列的。在網絡傳輸時,我們校驗源文件獲得其 md5sum,傳輸完畢后,校驗其目標文件,並對比如果源文件和目標文件 md5 一致的話,則表示文件傳輸無異常。否則說明文件在傳輸過程中未正確傳輸。

2、md5sum命令的語法格式

SYNOPSIS
    md5sum [OPTION]... [FILE]...

3、md5sum命令的選項說明

  • -b :以二進制模式讀入文件內容
  • -t:以文本模式讀入文件內容
  • -c :根據已生成的md5值,對現存文件進行校驗
  • --status:校驗完成后,不生成錯誤或正確的提示信息,可以通過命令的返回值來判斷。

4、md5sum命令的實踐操作

范例1:不加參數,直接生成文件md5 值(md5sum file

cd && rm -rf /test  -->將之前的實驗環境刪除掉。提示:rm -rf 謹慎使用!
mkdir /test && cd /test 
touch file.txt
md5sum file.txt  -->直接生成文件md5值
echo "I love linux"  >>file.txt
!md5  -->再次查看,md5值發生了變化

范例2:以文本模式或二進制模式讀入文件並對其進行校驗

file file.txt
md5sum file.txt
md5sum -b file.txt
md5sum -t file.txt

注意:雖然是不同的讀入模式,但是在進行求 md5 的時候,是一樣的,因為是逐位校驗的。

范例3:md5值重定向到新文件中(可以留着做校驗而用的)

md5sum file.txt > newfile.md5
md5sum file.txt
cat newfile.md5  -->難道手工校驗?No,No,No。

范例4:md5 校驗,(-c參數)如果一致,則返回OK,否則返回錯誤信息

md5sum -c newfile.md5  -->哈哈,手工校驗太Low了,當然是有參數滴,-c參數校驗
echo "Me too" >> file.txt  -->追加內容
cat file.txt  -->查看內容
!md5  ->再次校驗

范例5:不顯示校驗信息,( --status 參數)以命令返回值來判斷,校驗一致返回 0 ,不一致返回 1

md5sum -c newfile.md5  
md5sum -c --status newfile.md5  
echo $?  -->不一致返回1
md5sum file.txt > newfile.md5  -->重新記錄md5值
md5sum -c newfile.md5
md5sum -c --status newfile.md5
echo $?  -->不一致返回1

特殊說明

1)md5sum 是校驗文件內容,與文件名是否相同無關
2)md5sum 值逐位校驗,所以文件越大,校驗時間越長。

命令總結

​ 通過 md5sum 來校驗生成文件校驗碼,來發現文件傳輸(網絡傳輸、復制、本地不同設備間的傳輸)異常造成的文件內容不一致的情況。

應用場景

​ 需要比較2個rc1.tar.gz 包和 rc2.tar.gz兩個包,變更是不是和開發說的一致

1. 獲取包,確保包正確無誤

​ 獲取包后,驗證包的 MD5 值:

md5sum rc*.tar.gz

2. 解壓縮到指定目錄

​ 確保對應的目錄存在

tar -zxvf  rc1.tar.gz -C ./test_rc1
tar -zxvf  rc2.tar.gz -C ./test_rc2

3. 遞歸生成各文件的的MD5值

find ./test_rc1 -type f -print0| xargs -0 md5sum >> rc1_md5.txt
find ./test_rc2 -type f -print0| xargs -0 md5sum >> rc2_md5.txt

4. 比較兩文件的MD5值

diff -c rc1_md5.txt  rc2_md5.txt

​ 或者用 UltraCompare Professional 比對結果

『MineGi有話說』:快來掃一掃下面鏈接的二維碼,加入我們吧!


免責聲明!

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



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