bash:为什么在 diff 命令中使用“将所有文件视为文本”标志?

bash:为什么在 diff 命令中使用“将所有文件视为文本”标志?

我看到了一些使用 diff 命令的示例,特别是以递归方式使用它来检查整个目录,使用“diff -ar foo/ foo2/”。

如果我检查一堆混合文件(一些文本,一些二进制文件),将所有文件视为文本似乎是违背常理的,即使它可以工作!

检查包含二进制文件的目录时使用 -a 真的是个好主意吗?如果是,有人能解释一下为什么吗?

答案1

确实取决于您的用例。“二进制文件不同”输出通常比查看精确的差异更有用,但有时您确实希望看到两个二进制文件之间的精确差异;有时,您想绕过决定文件是否为二进制的启发式方法(例如,包含某些未知编码文本的文件可能会触发“是二进制”启发式方法,而实际上不应该触发)。

相关内容