> 文件与目录管理 > sum

sum: 计算文件校验和和块数

sum 命令计算并输出文件的 16 位校验和和 1KB 块数。它主要用于快速检查文件的完整性或快速比较文件是否已更改。

概述

sum 命令计算指定文件的校验和 (checksum) 和块数 (block),并将结果输出到标准输出。这些值可用于快速检查文件的内容是否已更改。默认情况下,它使用 512 字节的块并以 BSD 兼容模式进行计算。

主要特点

  • 计算文件的 16 位校验和
  • 计算文件的块数(默认为 512 字节或 1KB)
  • 简单的文件完整性检查和更改检测
  • 支持 BSD 和 System V 兼容模式

主要选项

sum 命令提供了一些选项来更改校验和的计算方式。

校验和模式

生成的命令:

请尝试组合命令。

描述:

`sum` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

了解使用 sum 命令计算文件校验和和块数的各种方法。

基本校验和计算 (BSD 模式)

echo 'Hello World' > testfile.txt
sum testfile.txt

计算文件的基本 (BSD) 校验和和块数。(创建 testfile.txt 后执行)

System V 模式校验和计算

sum -s testfile.txt

使用 System V 兼容模式计算文件的校验和和块数。

计算多个文件的校验和

echo 'Another file' > anotherfile.txt
sum testfile.txt anotherfile.txt

同时计算多个文件的校验和。

从标准输入计算校验和

echo 'Data from stdin' | sum

计算通过管道传递到标准输入的数据的校验和。

提示与注意事项

sum 命令适用于简单用途,但对于现代文件完整性检查,建议使用更强大的工具。

安全警告

sum 生成的 16 位校验和容易发生冲突 (collision)。也就是说,内容不同的两个文件可能具有相同的校验和。因此,它不适用于验证重要数据的完整性。

  • 安全性低: 16 位校验和容易发生冲突,难以检测恶意更改。
  • 用途有限: 主要用于开发过程中文件的快速更改检测等非安全用途。

替代命令

为了进行更强大、更安全的文件完整性检查,建议使用以下命令:

  • md5sum: 计算 MD5 哈希值(32 位十六进制数字)。
  • sha1sum: 计算 SHA-1 哈希值(40 位十六进制数字)。
  • sha256sum: 计算 SHA-256 哈希值(64 位十六进制数字)。
  • cksum: 计算 CRC32 校验和。比 sum 更强大,但不如 md5/sha 系列。

理解块大小

sum 命令的块数是文件大小除以块大小的值。BSD 模式基于 512 字节,System V 模式基于 1024 字节 (1KB)。

  • BSD 块: 512 字节(默认)
  • System V 块: 1024 字节 (1KB)


相同类别命令