Welche Verzeichnisvergleichstools kann ich unter OS X verwenden?
On Februar 10, 2021 by adminIch suche ein Tool, mit dem Verzeichnisse verglichen werden können, nicht nur Dateien. Es ist auch wichtig, das Tool über die Befehlszeile aufrufen zu können.
Es wäre toll, ein kostenloses Tool zu haben. Wenn es nicht kostenlos ist, geben Sie bitte den Preis an.
Antwort
Für alle Googler … siehe Beyond Compare . Kostet 30 $ oder 50 $ für die Pro-Version.
Kommentare
- Ich versuche normalerweise zu vermeiden, kommerzielle Lösungen zu empfehlen, wenn kostenlose und Open-Source-Alternativen existieren, aber BeyondCompare ist ein Sonderfall, in dem es jeden Cent wert ist … und auch plattformübergreifend. Ich benutze es seit mehr als 10 Jahren und habe zu lange auf die MacOS-Version gewartet.
- Es ist jetzt April 2020 und die Pro-Version kostet jetzt 60 US-Dollar.
- I ‚ Ich habe alle Lösungen auf dieser Seite ausprobiert und denke, Beyond Compare ist zu 100% die beste und wertvollste Empfehlung.
Antwort
FileMerge (kostenlos), im Lieferumfang von Xcode enthalten, bietet eine Verzeichnisansicht.
Eine Befehlszeilenversion ist über die Terminalanwendung opendiff verfügbar.
So können Sie zwei Verzeichnisse mit FileMerge vergleichen:
- ⌘ + Leerzeichen, geben Sie „FileMerge“ ein und öffnen Sie es.
- Klicken Sie auf die Schaltfläche „links“ und wählen Sie den Ordner aus, aus dem Sie Elemente verschieben möchten. (Der „alte“ Ordner)
- Klicken Sie auf die Schaltfläche „rechts“ und wählen Sie den gewünschten Ordner aus Sie möchten Elemente in den Ordner („neuer“ Ordner) verschieben und auf die Schaltfläche „Vergleichen“ klicken.
- Wählen Sie im rechten Bereich Folgendes aus: „identisch“ und „rechts geändert“. Auf diese Weise werden Sie nur Sie sehen Dateien, die im Ordner „Neu“ fehlen, und ignorieren Dateien, die Sie möglicherweise im Ordner „Neu“ hinzugefügt haben.
- Verschieben Sie Dateien manuell im Finder oder lassen Sie FileMerge dies tun, indem Sie eine Option im Ordner auswählen Dropdown-Liste „Zusammenführen“ im rechten Bereich.
Kommentare
- Ich möchte diese Antwort auswählen, weil
opendiff
könnte als fast “ gebündelt “ mit dem OS X betrachtet werden, aber wenn ich versuche, zwei Ordner zu unterscheiden, öffnete sich ein hässliche Ansicht, die nicht so einfach zu verstehen war und ich konnte auch nicht sehen, wie ich zwei Dateien in der Dateiansicht zusammenführe. Ich ‚ bin mir sicher, dass dies möglich ist, aber wenn diese grundlegende Funktion nicht offensichtlich ist, werde ich lieber nach etwas Besserem suchen;) - FileMerge ist nicht so gut wie BeyondCompare bei weitem. Aber es ist kostenlos und für eine einmalige Anforderung ist ‚ der Preis, den ich gesucht habe 🙂
Antwort
Integriertes Dienstprogramm für MacOS und Linux
Wenn es Ihnen nichts ausmacht, das Terminal zu verwenden, wird die diff
kann Verzeichnisse vergleichen.
Dieses Dienstprogramm ist auch in den meisten Linux-Distributionen verfügbar.
diff -rq directory1/ directory2/
-r
gibt die Rekursion durch Unterverzeichnisse an und -q
gibt eine kurze Ausgabe aus (dh zeigt nicht die tatsächlichen Unterschiede an, notiert nur, welche Dateien / Verzeichnisse unterschiedlich sind).
Weitere nützliche Optionen sind:
-s
identische Dateien melden,
-i
Groß- / Kleinschreibung im Dateiinhalt ignorieren,
--ignore-file-name-case
Groß- / Kleinschreibung beim Vergleichen von Dateinamen ignorieren.
Wenn Sie Warnungen (meistens nützliche Warnungen) über Unterschiede in der .DS_Store
Dateien, dann verwenden Sie:
diff -rq directory1/ directory2/ | grep -v .DS_Store
Kommentare
- Sie können Unterordner direkt über
diff --exclude node_modules
- ausschließen kann
diff -x node_modules
Antwort
Diffmerge sollte alle Ihre Anforderungen erfüllen.
Kommentare
- Ich hoffe nur, dass sie ein Installationsprogramm erstellen Dadurch können die Befehlszeilenstarter installiert und die aktuelle Installationserfahrung verbessert werden.
- Dies ist ein altes Thema – aber ich habe es über
brew cask install diffmerge
installiert und es installiert ohne Probleme. - Apr 2016: Es wird immer noch gewartet und ist immer noch eines meiner bevorzugten Entwicklungstools.
- FWIW Ich habe
brew cask install diffmerge
Heute (Juni 2020) und als ich versuchte, diffmerge auszuführen, erhielt ich eine Warnmeldung, dass MacOS das Programm nicht ‚ ausführen konnte, da es Überprüfen Sie den Entwickler nicht. (Diffmerge wurde nicht ausgeführt) - @MikeTheTall Ist ‚ nicht das übliche für Apps, die nicht aus dem App Store stammen? Haben Sie versucht, bei gedrückter Strg-Taste auf das App-Symbol zu klicken und dann
open
aus dem Kontextmenü auszuwählen?
Antwort
Ein weiteres nützliches Tool, um dies zu erreichen, ist rsync, wie unter Unix & Linux StackExchange beschrieben .Um zwei Ordner zu vergleichen, können Sie
rsync -avun $SOURCE $TARGET
tun. Wenn Sie sich wirklich Gedanken über Dateikonsistenz / Bitrot machen, gibt es auch die Option c zum Vergleichen von Dateiprüfsummen
rsync -avnc $SOURCE $TARGET
Kommentare
- Hervorragende Referenz für seine Nützlichkeit unter allen Unixen
.
Antwort
Ich habe kürzlich eine Kopie von Kaleidoskop gekauft (ca. 40 US-Dollar). Es ist eine saubere App.
vimdiff ist auch über die Befehlszeile verfügbar und auf die meisten UNIXy-Domänen portierbar.
Kommentare
- Ich ‚ benutze Kaleidoscope seit einigen Monaten. Den Preis wert. Es wird gelegentlich zum Verkauf angeboten.
- Mit Kaleidoscope können Sie keine nutzlose Datei bearbeiten!
- Preis für Kaleidoscope im App Store im Jahr 2020: 74,99 Euro
Antwort
Sie sollten die leistungsstarke Open-Source-Software Meld ausprobieren. Die Mac-Version finden Sie unter Meld für OSX . Es unterstützt sowohl den Verzeichnis- als auch den Dateivergleich und funktioniert unter Mac hervorragend.
Mir wurde gesagt, dass ich dies verbessern soll Antworte und erkläre, warum Meld gut ist. Im Allgemeinen ist Meld eine Vergleichssoftware mit allen Funktionen, die hauptsächlich in GNOME verwendet wird. Sie ist besser als viele der hier aufgeführten Software, da
- kostenlos und Open Source ist Also yo Sie brauchen sich keine Sorgen um die Gebühr oder die Sicherheit zu machen.
- Wenn es nicht leistungsfähiger ist, ist es so ausgefeilt wie eine Menge Software, die Sie viel Geld kostet. freundlich und beinhaltet keine komplexe Konfiguration oder Eingabe eines Befehls im Terminal. Sie sollten es sofort nach der Installation verwenden können.
Der Teil, der nicht so gut ist, könnte sein, dass es unter GTK entwickelt wurde. Manchmal fühlt es sich also nicht wie ein Natur-MAC-Programm an. Außerdem waren die alten MAC-Versionen ein wenig fehlerhaft. Aber die neueste Version 3.19.2, die ich derzeit verwende, funktioniert hervorragend und ich habe noch nie ein Problem festgestellt.
Kommentare
- Auch die Installation ist einfach
brew cask install meld
Antwort
Das mit
Der Text Wrangler der Bare Bones Software verfügt über einen Verzeichnisvergleich, zeigt jedoch nur an, welche Dateien sich in beiden Verzeichnissen und welche nur in jedem der Verzeichnisse befinden. Wenn Sie auswählen Eine Datei, die in beiden enthalten ist, können Sie bearbeiten, indem Sie Änderungen Zeile für Zeile mit einem Klick auf eine Schaltfläche zusammenführen. Sie können Dateien jedoch nicht verschieben. Sie müssen dies extern tun (z. B. über den Finder).
Ich finde, dass dies eine der besseren kostenlosen Optionen ist.
Antwort
Ich verwende Ordnersynchronisierung Die Mac App Store Es funktioniert wirklich gut.
Antwort
Ich habe große Ordnerstrukturen (DVDs) verglichen. In der Vergangenheit hatte ich ein Befehlszeilenprogramm entwickelt, um dies zu tun. Vor kurzem habe ich das Dienstprogramm (CrcCheckCopy) kostenlos und plattformübergreifend (MacOS und Windows) erstellt.
CrcCheckCopy scannt den Quellordner und erstellt ihn Eine Datei, die die CRC-Stempel aller Dateien enthält. Diese Datei wird dann zum Vergleichen des Zielordners verwendet.
Sie können sie hier herunterladen: https://www.starmessagesoftware.com/crccheckcopy Ihr Feedback wird Ihnen sehr geschätzt.
Antwort
Änderungs-App ($ 37.19) war früher meine Aufgabe rkforce dafür. Es ist so gut wie Beyond Compare.
Hinweis: Ich hoffe, dass diese Qualitätssicherung existieren darf, obwohl es gegen mindestens SO-Normen verstößt, für Produkte zu werben. Die Notwendigkeit eines benutzerfreundlichen, intuitiven, grafischen Verzeichnisvergleichstools für macOS bleibt akut. Open Source-Kandidaten haben nicht die Benutzerfreundlichkeit erreicht, die die kommerziellen Tools bieten.
Antwort
Wenn Sie wissen, wie Python ausgeführt wird Hier ist ein Skript, das ich vor einiger Zeit geschrieben habe, um zwei Verzeichnisse effizient zu vergleichen.
Funktionen:
- Es kann Baumstrukturen und Dateiänderungen (basierend auf der Dateigröße & MD5-Hashes)
- kann den Dateivergleich deaktivieren und nur Änderungen der Baumstruktur anzeigen (sehr schnell!)
- kann den Vergleich von Dateiinhalten deaktivieren Wenn Sie sich nur auf Änderungen der Dateigröße verlassen (wieder sehr schnell), können Sie
- die Ausgabe für eine bessere Lesbarkeit einfärben.
Und natürlich können Sie sie Ihren Anforderungen entsprechend anpassen. Wenn Sie wissen, wie man programmiert.
#!/usr/bin/env python3 """ A script to recursively compare two directories (including file size and file hash changes) Usage: python3 compare_dirs.py DIR1 DIR2 """ import os, sys, hashlib COMPARE_FILES = True # should file sizes be compared if their names are the same? MD5 = True # should file hash sums be compared if their names and sizes are the same? COLORIZE = False # colorization for bash (only Linux & Unix) def md5sum(fn): hasher = hashlib.md5() with open(fn, "rb") as f: hasher.update(f.read()) return hasher.hexdigest() WHITE, RED, GREEN = 15, 196, 46 fg = lambda text, color: "\33[38;5;" + str(color) + "m" + text + "\33[0m" def compare_dirs(d1: "old directory name", d2: "new directory name"): def print_local(a, msg): text = "{} {} {}".format("DIR " if a[2] else "FILE", a[1], msg) if COLORIZE: color = {"added": GREEN, "removed": RED}.get(msg, WHITE) print(fg(text, color)) else: print(text) # Ensure validity for d in [d1,d2]: if not os.path.isdir(d): raise ValueError("not a directory: " + d) # Get relative path l1 = [(fn, os.path.join(d1, fn)) for fn in os.listdir(d1)] l2 = [(fn, os.path.join(d2, fn)) for fn in os.listdir(d2)] # Determine type: directory or file? l1 = sorted([(fn, pth, os.path.isdir(pth)) for fn, pth in l1]) l2 = sorted([(fn, pth, os.path.isdir(pth)) for fn, pth in l2]) i1 = i2 = 0 cnt = 0 common_dirs = [] while i1<len(l1) and i2<len(l2): if l1[i1][0] == l2[i2][0]: # same name if l1[i1][2] == l2[i2][2]: # same type if l1[i1][2]: # Pair of directories -> remember the name for recursion common_dirs.append((l1[i1][1], l2[i2][1])) elif COMPARE_FILES: # Pair of files -> compare their sizes size1 = os.stat(l1[i1][1]).st_size size2 = os.stat(l2[i2][1]).st_size if size1!=size2: print_local(l1[i1],"size changed: {:d} -> {:d}".format(size1, size2)) elif MD5: # Sizes are the same -> compare MD5 hashes if md5sum(l1[i1][1])!=md5sum(l2[i2][1]): print_local(l1[i1],"hash changed") else: print_local(l1[i1],"type changed") i1 += 1 i2 += 1 elif l1[i1][0]<l2[i2][0]: print_local(l1[i1],"removed") i1 += 1 elif l1[i1][0]>l2[i2][0]: print_local(l2[i2],"added") i2 += 1 cnt += 1 while i1<len(l1): print_local(l1[i1],"removed") i1 += 1 cnt += 1 while i2<len(l2): print_local(l2[i2],"added") i2 += 1 cnt += 1 # Compare subfolders recursively for sdir1,sdir2 in common_dirs: cnt += compare_dirs(sdir1, sdir2) return cnt if __name__=="__main__": print ("Comparing files {}abled".format("en" if COMPARE_FILES else "dis")) print ("MD5 checking {}abled".format("en" if MD5 else "dis")) print ("Colorization {}abled".format("en" if COLORIZE else "dis")) print (compare_dirs(sys.argv[1], sys.argv[2]), "items compared")
Link zu GitHub Gist.
HINWEIS: Dies funktioniert nicht für die Dateien oder Unterverzeichnisse, die in die iCloud verschoben wurden.
Antwort
Am einfachsten Lösung: Synchronisieren Sie die Dateien mit Dropbox oder ähnlichem, dann verwenden Sie einfach WinMerge unter Windows.
Das mit Xcode gelieferte FileMerge-Dienstprogramm vergleicht keine Ordner und führt keine Zusammenführung / Bearbeitung durch.
Schreibe einen Kommentar