Wie kann ich zwei Ordner mit derselben Struktur rekursiv vergleichen?
Mithilfe diff
oder git diff
über bash
die Befehlszeile?
Antwort1
Um 2 Dateien zu vergleichen, verwenden wir den Befehl diff. Wie vergleichen wir 2 Verzeichnisse? Insbesondere möchten wir wissen, welche Dateien/Unterverzeichnisse gemeinsam sind, was sich nur in einem Verzeichnis befindet, aber nicht in dem anderen.
diff dir1 dir2
wenn Sie nicht an Dateiunterschieden interessiert sind, verwenden Sie
diff -q dir1 dir2 |sort
diff sortiert seine Ausgabe alphabetisch nach Datei-/Unterverzeichnisnamen. Ich bevorzuge die Gruppierung danach, ob sie häufig vorkommen und ob sie nur im ersten oder zweiten Verzeichnis vorhanden sind. Aus diesem Grund habe ich die Ausgabe von diff im obigen Befehl durch sort geleitet.
Beachten Sie, dass diff standardmäßig nicht in die Unterverzeichnisse eindringt, um die Dateien und Unterverzeichnisse auf dieser Ebene zu vergleichen. Um das Verhalten so zu ändern, dass rekursiv in die Unterverzeichnisse gegangen wird, fügen Sie -r hinzu.
diff -qr dir1 dir2 |sort
Ich hoffe das hilft.
Antwort2
Sie können ganz einfach Folgendes tun:
git diff --no-index FOLDER1 FOLDER2
Antwort3
Verwenden Sie den folgenden Befehl:
diff -r folder1 folder2
Antwort4
diff -Nur directory1 directory2