Ich möchte zwei Verzeichnisse vergleichen, eines ist lokal und das andere befindet sich auf einem anderen Computer.
Wie kann ich das machen? Kann ich das mit machen diff
?
unix
diff
comparison
aix
Eng Al-Rawabdeh
quelle
quelle
diff
mit unison tun kann , aber das Problem auf unison ist, kann nichtdiff
ohne Sync-Ordner tunrsync
Mit den oben genannten Optionen-avz
werden keine Dateien auf dem zweiten Computer (local-dir
) ausgegeben , die sich nicht im lokalen Verzeichnis befinden. Dies ist wahrscheinlich das, was @ EngAl-Rawabdeh mit "einer Richtung" bedeutet. Sie können die--delete
Option verwenden, um Dateien anzuzeigen, die nur in vorhanden sindlocal-dir
.Wenn Sie nur feststellen möchten, ob sie identisch sind oder nicht, so etwas
... sollte Ihnen eine einzige Prüfsumme über den gesamten Inhalt geben (ausgenommen leere Unterverzeichnisse). Sie können dies also auf beiden Computern ausführen und die Ausgaben vergleichen.
quelle
Beachten Sie, dass für die Verwendung
diff
der gesamte Inhalt des Remoteverzeichnisses über das Netzwerk übertragen werden muss. Dies kann zu einer unzulässigen Verlangsamung führen, wenn große Dateien oder eine große Anzahl von Dateien vorhanden sind.Meine Empfehlung wäre, zuerst zu bestimmen, welche Dateien sich zwischen den beiden Maschinen unterscheiden (indem
rsync -n --delete
(verwendet-n
wird, sagt es Ihnen nur, was es tun würde, aber ohne es tatsächlich zu tun;--delete
sagt Ihnen, ob irgendwelche Dateien im Ziel existieren, aber nicht im Quelle, weil es sie löschen möchte) oder durch Vergleichen vonmd5sum
s. Wenn Sie suchen, wie sie unterschiedlich sind (anstatt nur, wenn sie unterschiedlich sind), würde ich danndiff
nur für diese spezifischen Dateien verwenden, um zu sehen, was die Unterschiede sind.quelle
Ja, Sie können es mit diff tun! Benutzerbereichsanwendungen wie "diff" wissen nicht (und müssen auch nicht wissen), ob ein Verzeichnis lokal oder remote ist.
quelle
Ich habe ein Tool namens "UNISON" gefunden. Es ist ein sehr gutes Werkzeug und hat viele Optionen.
quelle