概述
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)