在 Unix/Linux 中判断两个文件是否具有相同内容的最快方法?

新手上路,请多包涵

我有一个 shell 脚本,我需要在其中检查两个文件是否包含相同的数据。我对很多文件执行此操作,并且在我的脚本中 diff 命令似乎是性能瓶颈。

这是行:

 diff -q $dst $new > /dev/null

if ($status) then ...

是否有更快的方法来比较文件,也许是自定义算法而不是默认的 diff

原文由 JDS 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 577
2 个回答

我相信 cmp 会在第一个字节差处停止:

 cmp --silent $old $new || echo "files are different"

原文由 Alex Howansky 发布,翻译遵循 CC BY-SA 3.0 许可协议

我喜欢@Alex Howansky 为此使用了’cmp –silent’。但我需要正面和负面的回应,所以我使用:

 cmp --silent file1 file2 && echo '### SUCCESS: Files Are Identical! ###' || echo '### WARNING: Files Are Different! ###'

然后我可以在终端中运行它或使用 ssh 来检查文件与常量文件。

原文由 pn1 dude 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题