当前位置:首页 > 电脑教程 > 正文

如何正确使用sum命令?

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命令?  第1张


常用操作示例

计算单个文件校验和

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 显示版本信息

典型应用场景

  1. 文件完整性验证
    对比传输前后的校验和,确保文件未损坏:

    sum -s original.txt > checksum.txt  # 生成记录
    sum -s -c checksum.txt              # 验证(需手动对比)
  2. 脚本自动化检查
    结合变量快速比对:

    original_sum=$(sum -s file.txt | awk '{print $1}')
    new_sum=$(sum -s file_copy.txt | awk '{print $1}')
    [ "$original_sum" = "$new_sum" ] && echo "文件一致"

注意事项

  1. 算法差异
    BSD 和 System V 结果不同,跨系统使用时需统一选项:

    # BSD 结果:30528 8
    sum -r file.bin
    # System V 结果:48216 12
    sum -s file.bin
  2. 替代工具推荐
    对于高安全性需求,建议使用更强大的校验工具:

    • md5sum / sha256sum:抗碰撞性更强
    • cksum:CRC 校验,可靠性高于 sum
  3. 块数量计算
    块数 = 文件大小(字节)÷ 512(向上取整),可用于快速估算文件大小。


  • 基础用途sum 适合快速校验小型文件或兼容旧脚本。
  • 生产建议:重要数据验证优先使用 sha256sum
  • 命令定位:轻量级校验工具,优势在于简单易用,而非安全性。

引用说明 参考自 Linux man-pages 项目 和 POSIX 标准文档,经实践验证整理。

0