3 Stimmen

Vergleich zwischen zwei großen Verzeichnissen

Ich habe ein großes Verzeichnis, das nur Material in CS und Mathe enthält. Es ist über 16 GB groß. Die Typen sind Text, png, pdf und chm. Ich habe derzeit zwei Zweige: einen Zweig meines Bruders und meinen eigenen. Die ursprünglichen Dateien waren identisch. Ich muss sie vergleichen. Ich habe versucht, Git zu verwenden, aber es gibt eine lange Ladezeit.

Wie kann man zwei große Verzeichnisse am besten vergleichen?

[Gemischte Lösung]

  1. Führen Sie in beiden Verzeichnissen ein "ls -R > different_files" durch [1]
  2. "sdiff <(echo file1 | md5deep) <(echo file2 | md5deep)" [2]

Was meinen Sie dazu? Gibt es Nachteile?

[1] Dank an Paul Tomblin [2] Vielen Dank an alle Replikanten!

6voto

vand3matram Punkte 61

Verwenden Sie fslint: Website . Eine der Optionen des Tools ist "Duplikate". Wie in der Beschreibung auf der Website angegeben: Eine der am häufigsten genutzten Funktionen von FSlint ist die Fähigkeit, doppelte Dateien zu finden. Der einfachste Weg, Flusen von einer Festplatte zu entfernen, besteht darin, eventuell vorhandene doppelte Dateien zu beseitigen. Oft weiß ein Computerbenutzer nicht, dass er vier, fünf oder mehr Kopien desselben Songs in seiner Musiksammlung unter verschiedenen Namen oder Verzeichnissen hat. Jeder Dateityp, ob Musik, Fotos oder Arbeitsdokumente, kann auf Ihrem Computer leicht kopiert und vervielfältigt werden. Da die Duplikate gesammelt werden, fressen sie den verfügbaren Festplattenspeicherplatz auf. Die erste von FSlint angebotene Menüoption ermöglicht es Ihnen, diese doppelten Dateien zu finden und zu entfernen.

2voto

Brian R. Bondy Punkte 325712

Wie vergleicht man 2 Ordner ohne bereits existierende Befehle/Produkte?

Erstellen Sie einfach ein Programm, das jedes Verzeichnis durchsucht und von jeder Datei einen File-Hash erstellt. Es gibt eine Datei mit jedem relativen Dateipfad und dem Dateihash aus.

Führen Sie dieses Programm in beiden Ordnern aus.

Dann vergleichen Sie einfach die beiden Ausgabedateien, um festzustellen, ob sie gleich sind. Um diese 2 Dateien zu vergleichen, laden Sie sie einfach in eine Zeichenkette und führen einen Stringvergleich durch.

Der verwendete Hashing-Algorithmus spielt keine Rolle. Sie können MD5, SHA, CRC, ... verwenden. Sie können auch die Dateigröße in den Ausgabedateien verwenden, um die Wahrscheinlichkeit von Kollisionen zu verringern.

Wie vergleicht man 2 Ordner mit bereits existierenden Befehlen/Produkten?

Wenn Sie nur ein Programm wollen, das dies tut, verwenden Sie diff -r o windiff für Windows-basierte Systeme.

2voto

froh42 Punkte 5110

Utilice md5tief um rekursive md5sum-Listen von jeder Datei in diesen Verzeichnissen zu erstellen.

Sie können ein Diff-Tool verwenden, um die erstellten Listen zu vergleichen.

1voto

Paul Tomblin Punkte 172816

Versuchen Sie nur herauszufinden, welche Dateien in der einen Datei vorhanden sind, die in der anderen nicht vorhanden sind, und umgekehrt? Hier ein paar Vorschläge:

  1. Führen Sie ein "ls -R" in beiden Verzeichnissen durch, leiten Sie zu den Dateien um und vergleichen Sie die Dateien.

  2. Führen Sie ein "rsync -n" zwischen ihnen aus, um zu sehen, was rsync kopieren müsste, wenn es die Erlaubnis zum Kopieren erhalten würde. (-n bedeutet, dass rsync nicht ausgeführt wird, sondern nur zeigt, was es tun würde, wenn Sie es ohne das -n ausführen würden)

1voto

flybywire Punkte 245586

Ich würde diff durch den Vergleich der Ausgabe von md5sum * | sort

Das führt Sie zu den Dateien, die anders sind/fehlen

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