So vergleichen Sie Verzeichnisse mit Binärdateien


7

Ich möchte Verzeichnisse mit Binärdateien vergleichen. Eigentlich interessiert mich nicht, was die tatsächlichen Unterschiede zwischen Dateien sind, sondern ob es Unterschiede gibt (und welche Dateien sich unterscheiden). Früher habe ich verwendet meld, aber es kann keine Binärdateien vergleichen.

Welches solche Dateivergleichstool kann das?

HINWEIS: Es spielt keine Rolle, ob es sich um ein grafisches Tool handelt oder nur über eine Befehlszeile.


Muss das Tool grafisch sein meldoder werden Dinge wie diffund commtun?
Terdon

@terdon - Es ist egal. Vielen Dank. Ich habe die Frage erweitert.
Webstuhl

Antworten:


11

Dies ist leicht möglich diff. Zum Beispiel:

$ ls -l foo/
total 2132
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash2
-rwxr-xr-x 1 terdon terdon  118280 Nov 18 13:13 ls

$ ls -l bar/
total 1124
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:14 bash
-rwxr-xr-x 1 terdon terdon  118280 Nov 18 13:14 ls

$ diff bar/ foo/
Only in foo/: bash2

Im obigen Beispiel enthalten die Verzeichnisse foo/und bar/Binärdateien und bash2befinden sich nur in foo/.

Sie könnten also etwas Einfaches ausführen wie:

$ diff bar/ foo/ && echo "The directories' contents are identical"

Das zeigt Ihnen die verschiedenen Dateien, falls vorhanden, oder druckt "Der Inhalt der Verzeichnisse ist identisch", falls vorhanden. Verwenden Sie zum Vergleichen von Unterverzeichnissen und eventuell darin enthaltenen Dateien diff -r. Kombinieren Sie es mit -q, um die Ausgabe für Textdateien zu unterdrücken.


5
Sie können diffmit dem -rSchalter auch rekursiv mit vergleichen .
slm

4
und -qum die tatsächliche Diff-Ausgabe für Textdateien zu deaktivieren.
Eile

1

Sie können zwei Dateien mit dem cmpBefehl vergleichen

Verwendungszweck:

cmp file1 file2

Es gibt die Anzahl Byte Differenz und Zeilennummer


1
cmp kann keinen rekursiven Vergleich durchführen. Das OP möchte Verzeichnisse vergleichen, keine Dateien.
Martin C. Martin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.