cksum(checksum的缩写)命令主要用于:
cksum [文件]...
| 选项 | 说明 |
|---|---|
| --help | 显示帮助信息 |
| --version | 显示版本信息 |
cksum命令的输出包含三个部分:
校验和 字节数 文件名
基本用法是计算单个文件的CRC校验和:
cksum document.txt
4234567890 1024 document.txt
输出说明:
4234567890 - CRC校验和1024 - 文件大小(字节)document.txt - 文件名一次计算多个文件的校验和:
cksum file1.txt file2.txt file3.txt
4234567890 1024 file1.txt
5234567891 2048 file2.txt
6234567892 512 file3.txt
通过比较校验和验证文件是否完整:
# 计算原始文件校验和
cksum original.txt > original.cksum
# 传输文件后验证
cksum received.txt
cat original.cksum
比较两个校验和是否相同,如果相同则文件完整。
使用find命令查找特定文件并计算校验和:
find . -name "*.txt" -exec cksum {} \;
结合其他命令使用管道:
ls *.txt | xargs cksum
创建包含多个文件校验和的清单:
cksum *.txt > checksums.txt
cat checksums.txt
使用校验和文件验证当前文件:
# 创建校验和文件
cksum *.txt > original_checksums.txt
# 稍后验证文件是否改变
cksum *.txt > current_checksums.txt
diff original_checksums.txt current_checksums.txt
CRC(循环冗余校验)是一种错误检测码,常用于检测数据在传输或存储过程中的意外更改。
cksum命令使用的CRC算法基于ISO 8802-3:1989标准中定义的以太网CRC32多项式。
特点:
| 命令 | 算法 | 输出长度 | 特点 |
|---|---|---|---|
| cksum | CRC32 | 32位 | POSIX标准,快速,适合基本完整性检查 |
| md5sum | MD5 | 128位 | 较高的碰撞抵抗,但已发现安全性漏洞 |
| sha1sum | SHA-1 | 160位 | 比MD5更安全,但也被发现存在漏洞 |
| sha256sum | SHA-256 | 256位 | 高安全性,目前推荐用于安全敏感场景 |
| sha512sum | SHA-512 | 512位 | 最高安全性,计算开销较大 |
在文件传输前后计算校验和,确保文件完整:
# 发送方
cksum large_file.dat > checksum.txt
# 传输 large_file.dat 和 checksum.txt
# 接收方
cksum large_file.dat
cat checksum.txt
验证备份文件的完整性:
# 创建备份时记录校验和
cksum important_file.* > backup_checksums.txt
# 恢复时验证
cksum important_file.* > restore_checksums.txt
diff backup_checksums.txt restore_checksums.txt
验证下载的软件包是否完整:
# 下载文件和其校验和
# 然后验证
cksum software_package.tar.gz
# 与官方提供的校验和比较