结论不同,往往只是设置不同

同一对目录,开了忽略时间与没开,得出的差异数量可能差出好几倍。

八项设置的作用与取舍

每一项都会影响最终结论

设置项作用取舍建议
内容判定方式决定按字节还是按规则比较结构化文件用规则比较更合适
忽略时间差异时间不同不视为差异核对内容时建议开启
忽略大小写标识符大小写不敏感代码与配置一般开启
忽略空白字符行尾空格差异不计多人协作时开启
指定文件编码按指定编码解读文本来源不明时必须手动指定
递归深度控制子目录比较层数深层目录先浅后深
外部程序调用对特定类型用外部工具仅对专有格式按需开启
文件大小阈值跳过超大文件媒体目录建议设置阈值

配套工具站点

把每次核对的口径记录下来。核对的结论只有在口径一致的前提下才有可比性。

设置相关的疑问

为什么两次核对结果不一样

先确认两次用的是同一套设置。口径变化是最常见的原因,比文件本身变化更常见。

排除规则写多了会不会误伤

有可能。规则越复杂越容易误排除,建议写完之后用查找功能核对命中的文件列表。

核对结论需要留什么记录

把设置项、比对时间范围、差异数量与清单一起存下来。以后复核时能直接复现。

能不能自动定期核对

可以借助命令行模式或者任务计划实现。定期核对适合用来监控目录内容是否被意外改动。

大文件的比较有哪些替代做法

先按哈希值比对判断是否相同,再对确认不同的文件做细粒度比较,能省下大量时间。

大批量核对的执行顺序

  1. 先确认八项设置,把这一次核对的口径固定下来。
  2. 用排除规则把缓存、临时文件与日志目录过滤掉。
  3. 先比较顶层目录,看差异的规模与分布。
  4. 针对差异集中的子目录逐层下钻,逐项确认。
  5. 把最终设置与结论一起记录下来,便于复核。

时间精度是最容易被忽略的一项

不同文件系统的修改时间精度不一样,有的精确到秒,有的精确到更小单位。跨文件系统复制之后,时间戳可能出现细微差别。

核对内容一致性时,把时间差异忽略掉,只看内容是否相同,结论会干净很多。只有在关心同步顺序的场景下,才需要把时间纳入判断。