Frage

Ich habe ein großes Verzeichnis, das enthält nur Sachen in CS und Math.Es ist über 16 GB in Größe.Die Typen sind text -, png -, pdf-und chm.Ich habe derzeit zwei Zweige:ein Zweig von meinem Bruder und mir.Die ursprünglichen Dateien, wurden die gleichen.Ich brauche, um Sie zu vergleichen.Ich habe versucht, Git verwenden, aber es ist eine lange Ladezeit.

Was ist die beste Methode zum vergleichen von zwei großen Verzeichnissen?

[Gemischte Lösung]

  1. Ein "ls -R > different_files" in beiden Verzeichnissen [1]
  2. "sdiff <(echo file1 | md5deep) <(echo file2 | md5deep)" [2]

Was denkst du?Irgendwelche Nachteile?

[1] vielen Dank an Paul Tomblin [2] großer Dank an alle repliers!

War es hilfreich?

Lösung

Wie vergleichen 2 Ordner ohne vorbestehende Befehle / Produkte:

Sie einfach ein Programm erstellen, das jedes Verzeichnis durchsucht und erstellt eine Datei Hash jeder Datei. Es gibt eine Datei mit jedem relativen Dateipfad und der Hash-Datei.

Führen Sie dieses Programm auf beiden Ordner.

Dann vergleichen Sie einfach die 2-Ausgabedateien zu sehen, ob sie gleich sind. Um diese zwei Dateien vergleichen Sie sie einfach in einen String laden und tun eine Zeichenfolge vergleichen.

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

Wie vergleichen 2 Ordner mit vorbestehenden Befehle / Produkte:

Nun, wenn Sie nur ein Programm wollen, dass es funktioniert, verwenden Sie diff -r oder windiff für Windows-basierte Systeme.

Andere Tipps

Mit fslint: Website . Eine der Optionen des Werkzeugs „Dubletten“. Gemäß der Beschreibung der Website: Eines der am häufigsten verwendeten Funktionen von fslint ist die Möglichkeit, doppelte Dateien zu finden. Der einfachste Weg, Flusen von einer Festplatte zu entfernen, ist keine doppelten Dateien zu verwerfen, das vorhanden sein kann. Oft wird ein Computer-Benutzer kann nicht wissen, dass sie vier haben, fünf oder mehr Kopien des exakt gleichen Songs in ihrer Musik-Sammlung unter verschiedenen Namen oder Verzeichnissen. Jeder Dateityp, ob es Musik, Fotos sein oder Arbeitsunterlagen kann leicht auf dem Computer kopiert und repliziert wird. Da die Duplikate gesammelt werden, sie essen in der zur Verfügung stehenden Festplattenplatz entfernt. Die erste Menüoption von fslint angeboten können Sie diese doppelte Dateien finden und zu entfernen.

Verwenden Sie md5deep rekursive md5sum Inserate von jeder Datei in diesen Verzeichnissen erstellen.

Sie können die Verwendung ein Diff-Tool die erzeugten Listen vergleichen.

Sind Sie nur versuchen zu entdecken, welche Dateien vorhanden sind, die nicht in der anderen, und Umgekehrt?Ein paar Vorschläge:

  1. Ein "ls -R" in beide Verzeichnisse umleiten von Dateien und diff-Dateien.

  2. Machen Sie einen "rsync -n" zwischen Ihnen zu sehen, was rsync kopieren müsste, wenn es erlaubt zu kopieren.(-n bedeutet, dass nicht das rsync, nur zeigen Ihnen, was Sie tun würden, wenn Sie lief es ohne die -n)

Ich würde diffing durch die Ausgabe von md5sum * | sort Vergleich

Das wird Sie auf die Dateien nehmen, die anders sind / fehlende

Ich weiß, diese Frage bereits beantwortet wurde, aber wenn man sich nicht in das Schreiben ein solches Werkzeug sind, gibt es eine sehr gut funktionierende Open-Source-Projekt mit dem Namen

scroll top