sum 是 Linux 系统中一个用于计算和校验文件校验和的实用工具。该命令会为指定文件生成校验和值,主要用于验证文件完整性。
基本用法
基本语法格式:
sum [选项] [文件...]
如果不指定文件参数,sum 会从标准输入读取数据。
主要选项
-
-r:使用 BSD 校验和算法(默认选项)
-
采用 16 位校验和计算
-
输出格式:校验和 块数 文件名
-
示例:
bashsum -r file.txt
-
-
-s:使用 System V 校验和算法
-
采用 32 位校验和计算
-
输出格式:校验和 块数 文件名
-
示例:
bashsum -s file.txt
-
-
--help:显示帮助信息
-
--version:显示版本信息
应用场景
-
文件完整性验证:
-
在文件传输前后计算校验和,比较确认文件是否完整
-
示例:
bashsum file.txt > checksum.txt # 传输文件后 sum file.txt | diff - checksum.txt
-
-
脚本中的文件校验:
bash#!/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
注意事项
sum命令已被更强大的cksum、md5sum和sha1sum等命令取代,这些新工具提供更强的校验算法- BSD 和 System V 算法的计算结果不同,比较校验和时要确保使用相同算法
- 对于大型文件或安全敏感场景,建议使用更现代的校验工具
与其他校验命令的比较
| 命令 | 算法强度 | 输出位数 | 推荐场景 |
|---|---|---|---|
sum |
弱 | 16/32 | 简单校验 |
cksum |
较强 | 32 | 一般用途 |
md5sum |
强 | 128 | 文件完整性验证 |
sha1sum |
更强 | 160 | 安全敏感场景 |
sha256sum |
最强 | 256 | 高安全性要求场景 |
虽然 sum 命令在当今 Linux 系统中使用频率降低,但了解它的工作原理对于理解文件校验机制仍有重要意义。