如何将目录与二进制文件进行比较

Loo*_*oom 9 files file-comparison

我想将目录与二进制文件进行比较。实际上,我对文件之间的实际差异不感兴趣,而是想知道是否存在差异(以及哪些文件不同)。以前我用过meld,但它不能比较二进制文件。

什么文件比较工具可以做到这一点?

注意:它是图形工具还是只有命令行都没有关系。

ter*_*don 13

使用diff. 例如:

$ ls -l foo/
total 2132
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash2
-rwxr-xr-x 1 terdon terdon  118280 Nov 18 13:13 ls

$ ls -l bar/
total 1124
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:14 bash
-rwxr-xr-x 1 terdon terdon  118280 Nov 18 13:14 ls

$ diff bar/ foo/
Only in foo/: bash2
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,foo/bar/目录包含二进制文件,bash2并且仅在foo/.

所以,你可以运行一些简单的东西,比如:

$ diff bar/ foo/ && echo "The directories' contents are identical"
Run Code Online (Sandbox Code Playgroud)

这将显示不同的文件(如果有),或者打印“目录的内容相同”(如果有)。要比较子目录及其可能包含的任何文件,请使用diff -r. 将它与-q抑制文本文件的输出结合使用。

  • 您也可以使用 `-r` 开关递归地与 `diff` 进行比较。 (5认同)
  • 和 `-q` 禁用文本文件的实际差异输出。 (4认同)