Linux 的 sum 命令

sum 是 Linux 系统中一个用于计算和校验文件校验和的实用工具。该命令会为指定文件生成校验和值,主要用于验证文件完整性。

基本用法

基本语法格式:
sum [选项] [文件...]

如果不指定文件参数,sum 会从标准输入读取数据。

主要选项

  1. -r:使用 BSD 校验和算法(默认选项)

    • 采用 16 位校验和计算

    • 输出格式:校验和 块数 文件名

    • 示例:

      bash 复制代码
      sum -r file.txt
  2. -s:使用 System V 校验和算法

    • 采用 32 位校验和计算

    • 输出格式:校验和 块数 文件名

    • 示例:

      bash 复制代码
      sum -s file.txt
  3. --help:显示帮助信息

  4. --version:显示版本信息

应用场景

  1. 文件完整性验证:

    • 在文件传输前后计算校验和,比较确认文件是否完整

    • 示例:

      bash 复制代码
      sum file.txt > checksum.txt
      # 传输文件后
      sum file.txt | diff - checksum.txt
  2. 脚本中的文件校验:

    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

注意事项

  1. sum 命令已被更强大的 cksum、md5sum 和 sha1sum 等命令取代,这些新工具提供更强的校验算法
  2. BSD 和 System V 算法的计算结果不同,比较校验和时要确保使用相同算法
  3. 对于大型文件或安全敏感场景,建议使用更现代的校验工具

与其他校验命令的比较

命令 算法强度 输出位数 推荐场景
sum 弱 16/32 简单校验
cksum 较强 32 一般用途
md5sum 强 128 文件完整性验证
sha1sum 更强 160 安全敏感场景
sha256sum 最强 256 高安全性要求场景

虽然 sum 命令在当今 Linux 系统中使用频率降低,但了解它的工作原理对于理解文件校验机制仍有重要意义。

相关推荐
段一凡-华北理工大学18 小时前
工业智能体:从Codex/Claude到项目实战~系列文章05:从“AI助手“到“工业智能体“:能力跃迁与落地范式
人工智能·python·claude·codex·工业智能体·高炉炼铁智能化
深蓝AI19 小时前
ContextVar 到线程池就丢了?asyncio.to_thread 和 run_in_executor 实测
python
岁月宁静20 小时前
什么是 Agent:从"会聊天"到"会做事"
人工智能·python
木头左20 小时前
【Nginx】内网服务源 IP 白名单实战:动态域名解析放行网段 + 端口接管零改造
运维·nginx·白名单·反向代理
岁月宁静20 小时前
AI 应用开发工程师简历怎么写:HR 初筛、技术复筛、面试追问,三道关卡各看什么?
人工智能·python·面试
来让爷抱一个21 小时前
Python 异步里混用同步库,事件循环被卡住的全过程
开发语言·python
Linux-lucky21 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默21 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk816321 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
小肝一下1 天前
3.基础语法(3)
python