有没有一种巧妙的方法来查看两个二进制文件之间的差异?它们大部分是相同的,但一些字节发生了变化,并且其中一个文件在某些位置插入了序列。
xxd
如果仅更改字节而不插入字节,则比较 的输出将起作用。
答案1
有一些二进制编辑器可以显示文件之间的差异,但我尝试过的(dhex
和vbindiff
)似乎无法检测和显示插入或删除。
有许多二进制 diff 实用程序,例如rdiff
、xdelta
或bsdiff
,可以计算两个文件之间的差异。但目的是生成patch
稍后应用于原始文件的文件。你无法阅读这些内容补丁文件到看有什么区别。
为了直观地看到差异,您可以做的一件事是对文件进行十六进制转储,每行一个字节和diff
结果。行号将告诉您文件中的偏移量(但要注意它从 1 开始,而不是 0):
diff -u <(od -w1 -vAn -tx1 file1) <(od -w1 -vAn -tx1 file2)
(假设您od
支持非标准-w
选项)。