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

如何正确使用sum命令?

sum命令用于计算文件的校验和及块数,常用于检查文件完整性,默认输出BSD格式(校验和+块数),使用 -r选项可切换为SysV格式,但现多被更安全的校验命令(如md5sum)替代。

sum 是 Linux/Unix 系统中用于计算文件校验和与块数量的命令行工具,主要用于验证文件完整性,以下是详细使用指南:


命令基本语法

sum [选项] 文件名


核心功能与算法

sum 提供两种校验算法,结果包含 校验和文件块数量(每块默认为 512 字节):

如何正确使用sum命令? 第1张

两种校验算法

选项 算法类型 特点 系统默认
-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 显示版本信息


典型应用场景

  1. 文件完整性验证

    对比传输前后的校验和,确保文件未损坏:

    如何正确使用sum命令? 第2张

  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 "文件一致"
  3. 注意事项

    1. 算法差异

      BSD 和 System V 结果不同,跨系统使用时需统一选项:

      如何正确使用sum命令? 第3张

    2. 替代工具推荐

      对于高安全性需求,建议使用更强大的校验工具:

      • md5sum / sha256sum:抗碰撞性更强
      • cksum:CRC 校验,可靠性高于 sum
      • 块数量计算

        块数 = 文件大小(字节)÷ 512(向上取整),可用于快速估算文件大小。

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

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

0