推荐用 cmp -s 判断文件内容是否相同:退出码0表示相同,1表示不同,2表示错误;diff -q 也可用但按行比较;不可仅凭文件名或大小判断;大批量查重宜用 sha256sum。

直接用 cmp -s 或 diff -q 判断最简洁可靠,不输出内容、只返回状态码,适合脚本中做条件判断。
推荐:用 cmp -s 快速比对
cmp 默认逐字节比较,遇到第一个差异就停止,效率高;加 -s(silent)选项后完全不输出,仅通过退出状态码表示结果:
- 退出码为 0 → 文件内容完全相同
- 退出码为 1 → 文件内容不同
- 退出码为 2 → 文件不可读等错误
示例(在 shell 脚本或命令行中使用):
if cmp -s file1.txt file2.txt; then
echo "内容一致"
else
echo "内容不同"
fi
备选:用 diff -q 判断是否相同
diff 是按行比较的工具,-q(brief)选项让它只回答“是否不同”,不显示具体差异:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 无输出且退出码为 0 → 相同
- 输出 "Files file1.txt and file2.txt differ" 且退出码为 1 → 不同
同样适用于 if 判断:
if diff -q file1.txt file2.txt > /dev/null; then
echo "一致"
fi
注意:别用文件名或大小代替内容判断
仅靠 文件名相同 或 stat 查到的大小相等 不能说明内容一致——两个不同文件可能碰巧大小一样。真实场景(如去重上传、配置校验)必须基于内容比对。
大批量文件查重复?用校验和
要一次检查多个文件是否重复,可结合 cksum 或 sha256sum:
-
sha256sum *.conf | sort | uniq -w64 -D—— 找出哈希值重复的配置文件 - 比对单对大文件时,sha256sum 比 cmp 略慢,但结果更抗碰撞,适合安全性要求高的场景

















