让 diff 创建新文件,但不删除现有文件

让 diff 创建新文件,但不删除现有文件

也许我遗漏了什么,但我希望两个目录之间的差异能够创建不存在的文件,但不删除存在的文件。因此,给出如下内容:

./a/foo
./b/bar

此命令:

diff -urN a b

将会呈现:

diff -urN a/bar b/bar
--- a/bar       1969-12-31 17:00:00.000000000 -0700
+++ b/bar       2012-05-22 10:09:05.221356000 -0600 @@ -0,0 +1 @@
+bar 
diff -urN a/foo b/foo
--- a/foo       2012-05-22 10:08:54.133138000 -0600
+++ b/foo       1969-12-31 17:00:00.000000000 -0700 @@ -1 +0,0 @@
-Foo

我想要的基本上是这样的:

diff -urN a/bar b/bar
--- a/bar       1969-12-31 17:00:00.000000000 -0700
+++ b/bar       2012-05-22 10:09:05.221356000 -0600 @@ -0,0 +1 @@
+bar

我想要以下新文件b但不是A要创建的,但文件A但不是b忽略。使用 diff 是否可行?

谢谢!

答案1

我认为您正在寻找 GNU diff 的--unidirectional-new-file标志,而不是-N

diff -ur --unidirectional-new-file a/bar b/bar
--- a/bar   1969-12-31 19:00:00.000000000 -0500
+++ b/bar   2012-05-22 12:39:33.000000000 -0400
@@ -0,0 +1 @@
+bar
Only in a: foo

如果您确实想要,您可以通过管道输出grep -v '^Only in'来删除最后一行,但保留它不会对任何东西造成损害。

相关内容