Inh alt zweier Verzeichnisse von der Befehlszeile aus vergleichen

Anonim

Um die unterschiedlichen Inh alte zweier Verzeichnisse ohne die zusätzliche Ausgabe, die Sie durch Befehle wie diff erh alten, zu vergleichen und aufzulisten, können Sie stattdessen den Befehl comm verwenden. Starten Sie zunächst Terminal und geben Sie den folgenden Befehl ein, wobei Sie die Verzeichnispfade entsprechend anpassen:

comm -3 <(ls -1 Ordner1) <(ls -1 Ordner2)

Die aufgelistete Ausgabe sind die Dateien, die in jedem Ordner unterschiedlich sind, wobei Dateien, die nur in Ordner 1 vorkommen, links ausgerichtet sind, und Dateien, die nur in Ordner 2 sind, rechts ausgerichtet sind.

Um beispielsweise den Inh alt eines Ordners mit dem Namen „Bilder“ und eines Ordners mit dem Namen „Alte Bilder“ zu vergleichen, die beide im Download-Verzeichnis des Benutzers gespeichert sind, lautet die Syntax wie folgt:

comm -3 <(ls -1 ~/Downloads/Bilder) <(ls -1 ~/Downloads/Alte Bilder)

Die Ausgabe kann wie folgt aussehen:

$ comm -3 <(ls -1 ~/Downloads/Bilder) <(ls -1 ~/Downloads/AlteBilder) Ordner-1-Datei.PNG Ordner -2-Datei kopieren.PNG-Foto 1 kopieren.PNG-Foto 3.PNG

Beachten Sie die Einrückung, die Ihnen zeigt, welche Dateien in jedem Ordner einzigartig sind. Im obigen Beispiel sind die Dateien „photo 1 copy.PNG“ und „photo 3.png“ rechtsbündig ausgerichtet, daher sind sie eindeutig für das Verzeichnis „OldPictures“ und „Folder-1-File“.PNG und Folder-2-File copy.PNG sind einzigartig für den ursprünglichen Bilderordner.

Dies funktioniert hervorragend in Mac OS X, aber es ist ein generischer Unix-Befehl, sodass Sie ihn auch unter Linux und anderen Varianten verwenden können. Wenn Sie auf Kompatibilitätsprobleme stoßen oder diesen Befehl als unnötig komplex empfinden, versuchen Sie es mit diff, um dieselbe Funktion auszuführen.

Toller Trick, gefunden von @climagic auf Twitter, @osxdaily ist auch dabei!

Inh alt zweier Verzeichnisse von der Befehlszeile aus vergleichen