1. 命令概述
- 命令名称:
cksum(英文全拼:checksum) - 核心功能:计算文件的CRC(循环冗余校验) 校验码,用于检查文件在传输或存储过程中是否被修改或损坏
- 校验机制:基于 CRC-32 算法,生成 32 位的校验和
- 主要用途:文件完整性验证、数据一致性检查
2. 语法格式
cksum [选项] 文件...
3. 常用选项
| 选项 | 说明 |
|---|---|
--help | 显示帮助信息 |
--version | 显示版本信息 |
4. 输出格式
命令执行后会输出三列信息:
校验和 字节数 文件名
- 第一列:32 位 CRC 校验和(十六进制)
- 第二列:文件的字节数
- 第三列:文件名
5. 常用实例
(1) 计算单个文件的校验和
# 计算 file.txt 的 CRC 校验和
cksum file.txt
# 输出示例:1234567890 1024 file.txt
(2) 计算多个文件的校验和
# 计算多个文件的校验和
cksum file1.txt file2.txt file3.txt
# 输出示例:
# 1234567890 1024 file1.txt
# 2345678901 2048 file2.txt
# 3456789012 3072 file3.txt
(3) 结合通配符使用
# 计算当前目录下所有 .txt 文件的校验和
cksum *.txt
# 计算当前目录下所有文件的校验和
cksum *
(4) 将结果保存到文件
# 计算文件校验和并保存到 checksum.txt
cksum file.txt > checksum.txt
# 计算多个文件的校验和并保存
cksum *.txt > checksums.txt
6. 实际应用场景
场景一:文件完整性验证
# 源端计算校验和
cksum important_file.tar.gz > original_checksum.txt
# 传输文件后,在目标端重新计算校验和
cksum important_file.tar.gz > new_checksum.txt
# 比较两个校验和是否一致
diff original_checksum.txt new_checksum.txt
# 如果输出为空,说明文件完整无损
场景二:批量文件完整性检查
# 创建校验和清单
cksum *.tar.gz > backup_checksums.txt
# 定期检查文件是否被修改
cksum *.tar.gz > current_checksums.txt
diff backup_checksums.txt current_checksums.txt
场景三:结合 find 命令使用
# 查找并计算所有 .log 文件的校验和
find /var/log -name "*.log" -exec cksum {} \;
7. 与其他校验命令的区别
| 命令 | 算法 | 输出长度 | 安全性 | 速度 |
|---|---|---|---|---|
cksum | CRC-32 | 32位 | 低 | 快 |
md5sum | MD5 | 128位 | 中 | 中 |
sha1sum | SHA-1 | 160位 | 中 | 慢 |
sha256sum | SHA-256 | 256位 | 高 | 最慢 |
8. 注意事项
- 安全性:CRC 校验主要用于检测意外错误(如传输损坏),不适用于安全验证(如防篡改),因为 CRC 容易被伪造
- 文件大小:CRC 校验和会随文件内容变化,但不随文件名变化
- 空文件:空文件的 CRC 校验和是
0 - 性能:CRC 计算速度较快,适合大文件校验
核心要点总结:
cksum使用 CRC-32 算法生成 32 位校验和- 输出格式:
校验和 字节数 文件名 - 主要用于文件完整性检查,不适用于安全验证
- 计算速度快,适合大文件校验
- 实际应用中常与
md5sum、sha256sum等更安全的校验命令配合使用