sum 是 Linux 系統(tǒng)中一個(gè)用于計(jì)算和校驗(yàn)文件校驗(yàn)和的實(shí)用工具。該命令會(huì)為指定文件生成校驗(yàn)和值,主要用于驗(yàn)證文件完整性。
基本用法
基本語(yǔ)法格式:
sum [選項(xiàng)] [文件...]
如果不指定文件參數(shù),sum 會(huì)從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù)。
主要選項(xiàng)
-
-r:使用 BSD 校驗(yàn)和算法(默認(rèn)選項(xiàng))
- 采用 16 位校驗(yàn)和計(jì)算
- 輸出格式:校驗(yàn)和 塊數(shù) 文件名
- 示例:
sum -r file.txt
-
-s:使用 System V 校驗(yàn)和算法
- 采用 32 位校驗(yàn)和計(jì)算
- 輸出格式:校驗(yàn)和 塊數(shù) 文件名
- 示例:
sum -s file.txt
--help:顯示幫助信息
--version:顯示版本信息
應(yīng)用場(chǎng)景
-
文件完整性驗(yàn)證:
- 在文件傳輸前后計(jì)算校驗(yàn)和,比較確認(rèn)文件是否完整
- 示例:
sum file.txt > checksum.txt # 傳輸文件后 sum file.txt | diff - checksum.txt
-
腳本中的文件校驗(yàn):
#!/bin/bash original_sum=$(sum file.txt | awk '{print $1}') current_sum=$(sum file.txt | awk '{print $1}') if [ "$original_sum" != "$current_sum" ]; then echo "文件已被修改" fi
注意事項(xiàng)
-
sum命令已被更強(qiáng)大的cksum、md5sum和sha1sum等命令取代,這些新工具提供更強(qiáng)的校驗(yàn)算法 - BSD 和 System V 算法的計(jì)算結(jié)果不同,比較校驗(yàn)和時(shí)要確保使用相同算法
- 對(duì)于大型文件或安全敏感場(chǎng)景,建議使用更現(xiàn)代的校驗(yàn)工具
與其他校驗(yàn)命令的比較
| 命令 | 算法強(qiáng)度 | 輸出位數(shù) | 推薦場(chǎng)景 |
|---|---|---|---|
sum |
弱 | 16/32 | 簡(jiǎn)單校驗(yàn) |
cksum |
較強(qiáng) | 32 | 一般用途 |
md5sum |
強(qiáng) | 128 | 文件完整性驗(yàn)證 |
sha1sum |
更強(qiáng) | 160 | 安全敏感場(chǎng)景 |
sha256sum |
最強(qiáng) | 256 | 高安全性要求場(chǎng)景 |
雖然 sum 命令在當(dāng)今 Linux 系統(tǒng)中使用頻率降低,但了解它的工作原理對(duì)于理解文件校驗(yàn)機(jī)制仍有重要意義。