shell學習四十八天 檔案校驗和匹配

2021-07-03 19:24:57 字數 2276 閱讀 7173

檔案校驗和匹配

要是你懷疑可能有很多檔案具有相同的內文,

而是用cmp

或diff

進行比較所有橫隊的比較

,導致所花費的時間會隨著檔案數目增長成次方的增長.

這是可以使用file checksum(

檔案校驗和

),取得近似線性的效能

.有很多任務具可用來計算檔案與字串的校驗和,包括

sum,cksum,

以及checksum,

訊息摘要工具

md5與

md5sum,

安全性雜湊演算法工具

sha,shalsum,sha256,

以及sha384.

案例:$echo -n "hello" | md5sum | cut -d ' '  -f1

5d41402abc4b2a76b9719d911017c592

分析:獲取字串

hell

的md5. 

md5sum : 顯示或檢查

md5(128-bit)

校驗和,

若沒有檔案選項

,或者檔案處為」-」,則從標準輸入讀取.

echo -n : 不列印換行

cut : cut用來從標準輸入或文字檔案中剪下列或域

.剪下文字可以將之貼上到乙個文字檔案

.-d指定域空格和

tab鍵不同的域分隔符

.-f1

表示第乙個域.

校驗程式用來從檔案中生成校驗金鑰,

然後利用這個校驗密碼核實檔案的完整性

.一般檔案可以通過網路分發帶不同的地點

.出於多種原因

,資料有可能在傳輸過程中丟失若干位

,從而導致檔案的破壞.

因此我麼需要採用一些測試方法去確定接收到的檔案是否存在錯誤.

我們可以對原始檔案和接收到的檔案進行校驗.

通過對比兩者的校驗結果,

就能夠核實接收到的檔案是否正確

.校驗對於編寫備份指令碼或系統維護指令碼來說很重要.

使用md5sum

或shalsum

進行校驗

最知名並且使用最廣泛的檢驗和技術是md5sum

和shalsum.

他們對檔案內容使用響應的演算法來生成校驗結果.

為了計算md5sum,

使用下列命令:

$md5sum f1

42a6ab275d6ae3a62ab448fb44dffb8a  f1

分析:得到的結果是乙個

32個字元的十六進製制字串後面跟檔名.

將輸出的校驗結果重定向到乙個檔案,

然後用這個

md5檔案核實資料的完整性:

md5sum f1>f1.md5

可以按照下面的方法永盛成的檔案何時資料完整性:

$md5sum -c f1.md5

f1: 確定

分析:如果出現確定

,則證明檔案無損.

shalsum是另乙個常用的檢驗演算法

.他從給定的輸入檔案中生成乙個長度為

40個字元的十六進製制的字串

.其用法和

md5sum

非常相似.

可以對多個檔案進行校驗

&md5sum f1 f2 > file.md5

$cat file.md5

42a6ab275d6ae3a62ab448fb44dffb8a  f1

42a6ab275d6ae3a62ab448fb44dffb8a  f2

分析:輸出中會在每行中包含單個檔案的檢驗結果字串.

可以按照下面的方法用生成的檔案核實資料完整性:

$md5sum -c file.md5

f1: 確定

f2: 確定

分析:這個命令會輸出校驗結果是否匹配的訊息

對目錄進行校驗

對於目錄進行校驗意味著我們需要對目錄中的所有檔案以遞迴的方式進行計算.

他可以使用命令md5deep

或者shaldeep

來實現.首先,

需要安裝

md5deep

軟體包可以確保能找到這些命令

.用法如下:

$md5deep -rl directory_path>directory.md5

分析:-r

選項代表使用遞迴的方式

,-l(

小寫字母

l)使用相對路徑

.預設情況下回話輸出絕對路徑.

使用下面的命令進行核實:

$md5sum -c dircetory.md5

shell學習四十八天 檔案校驗和匹配

檔案校驗和匹配 要是你懷疑可能有非常多檔案具有同樣的內文,而是用cmp 或diff 進行比較全部橫隊的比較 導致所花費的時間會隨著檔案數目增長成次方的增長.這是能夠使用file checksum 檔案校驗和 取得近似線性的效能 有非常多工具可用來計算檔案與字串的校驗和,包含 sum,cksum,以及...

shell學習十八天 文字排序

排序文字 行的排序,使用的命令 sort,該命令的語法是 sort option files.sort 將檔案 文字的每一行作為乙個單位,相互比較,比較原則是從首字元向後,依次按 ascii碼值進行比較,最後將他們按公升序輸出。入門案例 有乙個檔案 temp.txt,內容為 aaa 10 1.1cc...

171212 類的其他成員 連續第四十八天

類的常成員 定義常成員用關鍵字const,寫作const int a 常成員在建構函式中可以直接用常量進行初始化,這樣初始化後資料將有相同的值 當不同的物件去呼叫常資料是,所對應的位址也是不相同的 此外c 中的 的作用是其分割作用,是類給成員變數賦值的方法,初始化列表,更適用於常資料成員的初始化 對...