上一篇
如何正确使用sum命令?
- 电脑教程
- 2025-06-09
- 2459
sum命令用于计算文件的校验和及块数,常用于检查文件完整性,默认输出BSD格式(校验和+块数),使用
-r
选项可切换为SysV格式,但现多被更安全的校验命令(如md5sum)替代。
sum
是 Linux/Unix 系统中用于计算文件校验和与块数量的命令行工具,主要用于验证文件完整性,以下是详细使用指南:
命令基本语法
sum [选项] 文件名
核心功能与算法
sum
提供两种校验算法,结果包含 校验和 与 文件块数量(每块默认为 512 字节):
# 示例输出 12345 6 example.txt # 12345=校验和, 6=文件块数
两种校验算法
选项 | 算法类型 | 特点 | 系统默认 |
---|---|---|---|
-r |
BSD 算法 | 兼容旧系统(默认算法) | Linux/BSD |
-s |
System V 算法 | 符合 POSIX 标准 | 部分 Unix 系统 |
不同系统默认算法可能不同,建议显式指定
-r
或-s
保证一致性。
常用操作示例
计算单个文件校验和
sum -r example.txt # 输出:30528 8 example.txt
批量计算多个文件
sum -s file1.txt file2.jpg # 输出: # 48216 12 file1.txt # 15042 4 file2.jpg
仅显示校验和与块数(不显示文件名)
sum -r --quiet example.txt # 输出:30528 8
从标准输入读取数据
echo "Hello World" | sum -s # 输出:36980 1
关键选项说明
选项 | 作用 |
---|---|
-r |
使用 BSD 算法(兼容性优先) |
-s |
使用 System V 算法(标准优先) |
--quiet |
只输出校验和与块数 |
--help |
查看帮助文档 |
--version |
显示版本信息 |
典型应用场景
-
文件完整性验证
对比传输前后的校验和,确保文件未损坏:sum -s original.txt > checksum.txt # 生成记录 sum -s -c checksum.txt # 验证(需手动对比)
-
脚本自动化检查
结合变量快速比对:original_sum=$(sum -s file.txt | awk '{print $1}') new_sum=$(sum -s file_copy.txt | awk '{print $1}') [ "$original_sum" = "$new_sum" ] && echo "文件一致"
注意事项
-
算法差异
BSD 和 System V 结果不同,跨系统使用时需统一选项:# BSD 结果:30528 8 sum -r file.bin # System V 结果:48216 12 sum -s file.bin
-
替代工具推荐
对于高安全性需求,建议使用更强大的校验工具:md5sum
/sha256sum
:抗碰撞性更强cksum
:CRC 校验,可靠性高于sum
-
块数量计算
块数 = 文件大小(字节)÷ 512(向上取整),可用于快速估算文件大小。
- 基础用途:
sum
适合快速校验小型文件或兼容旧脚本。 - 生产建议:重要数据验证优先使用
sha256sum
。 - 命令定位:轻量级校验工具,优势在于简单易用,而非安全性。
引用说明 参考自 Linux man-pages 项目 和 POSIX 标准文档,经实践验证整理。