有没有一种Linux命令行应用程序,可以比较两个二进制文件,并在第一次不匹配时退出?
cmp
似乎没有退出选项。
有没有一种Linux命令行应用程序,可以比较两个二进制文件,并在第一次不匹配时退出?
cmp
似乎没有退出选项。
cmp
没有这个 选项,因为它总是在第一次不匹配时停止。
$ cmp -b /bin/ls /bin/sed
/bin/ls /bin/sed differ: byte 25, line 1 is 320 M-P 300 M-@
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校验和,则可以仅将其与快速查找它们是否匹配。 在这种情况下,我假设您有很多文件要比较。