使用 diff 显示新文件的内容以及创建的新空文件

使用 diff 显示新文件的内容以及创建的新空文件

执行这4个命令后,目录“a”有文件“1”,内容为“test”,文件“2”为空,目录“b”为空。

$ mkdir a
$ mkdir b
$ echo test > a/1
$ touch a/2

我们可以跑

$ diff -r a b
Only in a: 1
Only in a: 2

这对补丁没有帮助。或者,我们可以运行

$ diff -rN a b
diff -rN a/1 b/1
1d0
< test

这对于文件“1”来说非常有用,因为我们看到了它的内容,但现在文件“2”已经消失了。这是因为该-N标志的意思是“将不存在的文件视为空”,所以我认为 diff 无法看到空文件“a/2”和(假装,因为实际上是空的)空文件“b/2”之间的区别。

有没有一种方法可以让 diff 在一次执行中向我们显示一个新的空文件已被创建,以及一个新的非空文件的内容 - 以补丁可以使用的格式?

或者,这需要一个新的选项来比较吗?

答案1

不幸的是,GNU diffutils 的普通版本diff无法处理诸如b(删除空文件)之类的更改。 补丁对于这种情况可能有用。它可以作为一套在 Debian/Ubuntu 上。

相关内容