Deixe o diff criar novos arquivos, mas não remover arquivos existentes

1

Talvez eu esteja sentindo falta de algo, mas gostaria de um diff entre dois diretórios para criar arquivos que não existem, mas não remover arquivos que existem. Então, dado algo como:

./a/foo
./b/bar

Este comando:

diff -urN a b

mostrará:

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

O que eu gostaria é essencialmente isto:

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

Eu quero novos arquivos que estão em b mas não em um para serem criados, mas arquivos que estão em um mas não em b ignorado. Isso é possível com o diff?

Obrigado!

    
por Christoph 22.05.2012 / 18:18

1 resposta

1

Acho que você está procurando o --unidirectional-new-file flag do GNU diff, em vez de -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

Se você realmente quiser, pode enviar a saída através de grep -v '^Only in' para se livrar da última linha, mas não deve atrapalhar nada para deixá-la.

    
por 22.05.2012 / 18:46

Tags