989 Stimmen

Wie kann ich bei zwei Verzeichnisbäumen herausfinden, welche Dateien sich durch ihren Inhalt unterscheiden?

Wenn ich die Unterschiede zwischen zwei Verzeichnisbäumen herausfinden will, führe ich normalerweise einfach aus:

diff -r dir1/ dir2/

Dies gibt genau die Unterschiede zwischen den entsprechenden Dateien aus. Ich bin nur daran interessiert, eine Liste der entsprechenden Dateien zu erhalten, deren Inhalt sich unterscheidet. Ich nahm an, dass dies einfach durch die Übergabe einer Kommandozeilenoption an diff aber ich konnte auf der Manpage nichts finden.

Irgendwelche Vorschläge?

6 Stimmen

1 Stimmen

Wie kann man in Bezug auf eines der Verzeichnisse nur die Dateien/Verzeichnisse erhalten, die in dem anderen extra sind?

0 Stimmen

Verwenden. dircmp Befehl unter Unix (nicht Linux)

13voto

todd_dsm Punkte 740

Channel Landsmann 'billings' (von freenode/#centos Ruhm) teilte seine Methode mit mir:

diff -Naur dir1/ dir2

Der Schrägstrich am Ende des Verzeichnisses spielt dabei keine Rolle.

Außerdem scheint es, dass die -u ist bei einigen älteren/Server-Versionen von diff nicht verfügbar.

Der Unterschied in den Differenzen:

# diff -Nar /tmp/dir1 /tmp/dir2/
diff -Nar /tmp/dir1/file /tmp/dir2/file
28a29
> TEST

# diff -qr /tmp/dir1/ /tmp/dir2/
Files /tmp/dir1/file and /tmp/dir2/file differ

5voto

Javeed Shakeel Punkte 2350

Um diff zu finden, verwenden Sie diesen Befehl:

diff -qr dir1/ dir2/

-r wird auch alle Unterverzeichnisse diff -q weist diff an, nur zu melden, wenn sich Dateien unterscheiden.

diff  --brief dir1/ dir2/

--kurz zeigt die Dateien an, die im Verzeichnis nicht vorhanden sind.

Oder aber

können wir Meld verwenden, das in einem grafischen Fenster angezeigt wird, in dem sich der Unterschied leicht feststellen lässt.

meld  dir1/ dir2/

4voto

nh2 Punkte 23111

Diffoskop ist ein großartiges kommandozeilenbasiertes Verzeichnisvergleichstool.

Besonders gut gefällt mir, dass es sich in Dateien:

Es wird rekursiv Archive vieler Arten entpacken und verschiedene Binärformate in eine besser lesbare Form umwandeln, um sie zu vergleichen. Es kann zwei Tarballs, ISO-Images oder PDF-Dateien ebenso einfach vergleichen.

Es zeigt Ihnen nicht nur an, welche Dateien sich unterscheiden, sondern auch wie sie sich unterscheiden.

2voto

Fábio Punkte 721

Sie können auch verwenden. Rsync y find . Für find :

find $FOLDER -type f | cut -d/ -f2- | sort > /tmp/file_list_$FOLDER

Dateien mit demselben Namen und in denselben Unterordnern, aber mit unterschiedlichem Inhalt, werden jedoch nicht in den Listen angezeigt.

Wenn Sie ein Fan von GUI sind, können Sie sich Melden dass @Alexander erwähnt. Es funktioniert sowohl unter Windows als auch unter Linux einwandfrei.

2voto

Kickaha Punkte 3376

Um Unterschiede zwischen dirA und dirB zu melden und gleichzeitig zu aktualisieren/synchronisieren:

rsync -auv <dirA> <dirB>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X