需要Linux cmd-line应用程序来比较二进制文件,并在第一次不匹配时退出

是否有一个Linux命令行应用程序将比较两个二进制文件,并退出第一次失误?

cmp似乎没有退出的select。

Solutions Collecting From Web of "需要Linux cmd-line应用程序来比较二进制文件,并在第一次不匹配时退出"

cmp没有这个选项 ,因为它总是退出第一个不匹配。

 $ cmp -b /bin/ls /bin/sed /bin/ls /bin/sed differ: byte 25, line 1 is 320 MP 300 M-@ 

我认为你可以通过使用3个工具去:

  • cmp
  • diff
  • md5sum

对于二进制文件, cmp更好, diff对文本文件更好对于二进制文件, diff只是报告它们是否不同。 diff也适用于目录。

前两个中的任何一个都可以完成你默默需要的东西。 diff使用-q开关, cmp使用-s开关告诉你一个返回代码:0如果两个文件匹配,否则为1。

cmp还有一个很好的选择,可以避免(有点)读取整个文件(如果你有大文件的话):如果你知道这些文件可能在前N行或者N和M行之间有差异,对于行N = 10和M = 20):

 cmp file1 file2 10 20 

我将md5sum添加到列表中,因为如果您每次编辑其中一个文件时都有机会计算MD5校验和,那么您只能比较一下,以便快速找到它们是否匹配。 在这种情况下,我假设你有很多文件要比较。