Wie überprüfe ich, ob jede Datei in Ordner A auch in Ordner B vorhanden ist?

Wie überprüfe ich, ob jede Datei in Ordner A auch in Ordner B vorhanden ist?

Ich organisiere einige Dateien auf meiner Festplatte neu und habe eine alte Kopie eines Ordners. Ich möchte sicherstellen, dass jede Datei in Ordner A (der alten Kopie) in Ordner B vorhanden ist. Jeder Ordner enthält mindestens 200 Dateien, von denen die meisten wahrscheinlich Duplikate sind.

Vorbehalt: Ich kann nicht nur die Dateinamen überprüfen, sondern muss auch sicherstellen, dass sie den gleichen Inhalt haben (à la fdupes).

Ich habe auf der Manpage nachgesehen, fdupesob es eine Möglichkeit gibt, die umgekehrte Operation durchzuführen (also herauszufinden, welche Dateiennichthabe keine Kopien), aber ging mit leeren Händen, selbst wenn die Funktionalität vorhanden wäre, habe ich immer noch Dateien, die nur im Ordner B vorhanden sind.

Diese beiden Fragen waren ähnlich, betrafen aber nur Windows und waren daher keine große Hilfe:

Dank im Voraus.

Antwort1

Wenn Sie bereits eine Liste doppelter Dateien haben, vergleichen Sie diese einfach mit der Liste aller Dateien, um die einzelnen Dateien zu finden:

fdupes -r dir1 dir2 | grep -vwFf- <(find dir1 dir2 -type f)
  • -wrechnet nur mit ganzen Wörtern (keine Teilstrings, daher abcdwird die Datei nicht mit abgeglichen abc)
  • -Fbetrachtet die Muster als wörtlich, nicht als reguläre Ausdrücke
  • -fverwendet die angegebene Datei ( -in diesem Fall also die Standardeingabe) als Liste von Ausdrücken, mit denen abgeglichen werden soll.
  • -vwie Sie wahrscheinlich wissen, werden die nicht übereinstimmenden Zeilen angezeigt.

Die Ausgabe sollte eine Liste mit den Dateien enthalten, die nur in einem der Ordner gefunden wurden. Es sollte einfach zu überprüfen sein, dass sie sich alle im Ordner B befinden, indem man wie folgt nach dem Namen des Ordners A (im Folgenden genannt dir1) sucht:

fdupes -r dir1 dir2 | grep -vwFf- <(find dir1 dir2 -type f) | grep -F dir1

verwandte Informationen