2016-06-02 7 views
0

Wenn ich den Unterschied zwischen den zwei Verzeichnissen erhalten will ich den Befehl unten verwenden:Der Diff-Befehl für Dateien mit leeren Inhalt

diff -aruN dir1/ dir2/ > dir.patch 

so die dir.patch Datei sollte alle Unterschiede umfasst ich will, Recht ?

Aber wenn dir2/ enthält eine Datei mit leeren Inhalt, und diese Datei existent ist nicht in dir1/ zum Beispiel

dir1/ 

dir2/empty_content_file.txt ------ with empty content. 

Dann wird der Befehl diff jeden Patch für empty_content_file.txt nicht erzeugen, aber es ist eine benötigte Datei.

Gibt es eine Expertise oder einen alternativen Weg, dies zu tun?

Vielen Dank im Voraus.

Antwort

1

Das liegt daran, dass Sie die Option -N verwenden, die hinzugefügt wird, um die fehlende Datei als leer zu behandeln. man diff sagt:

 -N, --new-file 
       treat absent file as empty 
+0

Aber der Unterschied Befehl erstellt nie den Patch ohne N-Option für inexistent Dateien in dir1 /, so N notwendig ist ... –

+0

Nun, ich habe mit oder ohne Option -N getestet. Ohne die Option -N zeigt es das Vorhandensein einer Datei an. –

+0

Nein, es wird kein Patch ohne das Argument -N für nicht vorhandene Dateien im ersten Verzeichnis erzeugt, es wird "Nur in Verzeichnis2 /: empty_content_file.txt" angezeigt. –

0

Der Screenshot unten den Betrieb des „diff -ARU“ Befehl für inexistent Dateien im ersten Verzeichnis zeigt, wird eine Meldung „Nur in xxx“ zeigen wird.

The diff command without -N option for inexistent files in the first directory.

Verwandte Themen