1

Может быть, я что-то упустил, но я хотел бы, чтобы различия между двумя каталогами создавали файлы, которые не существуют, но не удаляли файлы, которые существуют. Итак, учитывая что-то вроде:

./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 ответ1

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' чтобы избавиться от последней строки, но ничего не помешает оставить его в.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .