2016-06-29 10 views
1

Ich habe ein Verzeichnis dirA auf meinem Laptop, und ein Verzeichnis dirB auf einem Remote-Host, auf den ich ssh. Beide Verzeichnisse enthalten Unterverzeichnisse.Verzeichnisse mit ssh vergleichen

Ich möchte den gesamten Inhalt der beiden Unterverzeichnisse mit ssh vergleichen. Insbesondere möchte ich wissen, welche Datei oder welches Unterverzeichnis in dirA nicht in dirB ist und umgekehrt. Die zwei Verzeichnisse sind groß genug, dass ich nicht die ganzen Dateien durch ssh übertragen möchte, nur ihre Namen und Standorte vergleichen.

Wissen Sie, wie das geht?

Vielen Dank.

Antwort

1

Verwenden Sie rsync mit der --dry-run Option; so etwas wie:

rsync -ar --dry-run local-dir/ [email protected]:remote-dir 

die Liste der Dateien, die synchronisiert worden wäre Dies wird ausgegeben. Also wenn es keine Ausgabe gibt; es gibt keinen Unterschied.

edit: Zwei Optionen, die Sie sich anschauen sollten:

  • --ignore-times: ignorieren Sie die Zeitstempel der lokalen und Remote-Dateien, wenn die Dateien zu vergleichen.
  • --size-only: Wenn Sie den rsync-Befehl beschleunigen möchten. rsync vergleicht nur die Größe der Dateien. Beachten Sie, dass dies ist fehleranfällig (Dateien mit gleicher Größe können abweichen)
  • --itemize-changes: zeigen die Änderungen zwischen Dateien

Sie einen Blick auf this anwser

+0

nehmen können Sie möchten die Überprüfung Änderungszeiten usw. auszuschalten so dass nur Dateiinhalte verglichen werden (wenn auch das!). – Kusalananda

+0

@SergeBallesta Geht das? Ich dachte 'rsync' war schlauer als das und verglich Prüfsummen. Wenn nicht, würde es sich nicht von einem rekursiven "scp" unterscheiden ... – Kusalananda

+0

@Kusalananda: Danke für den Hinweis; Ich habe einige Informationen über die rsync Optionen hinzugefügt, die er in Betracht ziehen könnte ... –

Verwandte Themen