也许我遗漏了什么,但我希望两个目录之间的差异能够创建不存在的文件,但不删除存在的文件。因此,给出如下内容:
./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'
来删除最后一行,但保留它不会对任何东西造成损害。