
Ich habe einen Ordner.
Ich habe eine Kopie dieses Ordners lokal und eine auf einem Server. Ich habe meinen lokalen Ordner nach Wunsch bearbeitet und dannrsynces an den Server.
Gibt es eine Möglichkeit, diese beiden Kopien (lokal und remote) zu vergleichen und eine Liste der Dateien zu erhalten, die sich auf der Remote-Kopie, aber nicht auf der lokalen Kopie befinden?
Antwort1
Der folgende, auf dem lokalen Computer ausgeführte rsync-Befehl listet die Dateien auf, die auf dem Remote-Host, aber nicht auf dem lokalen Host vorhanden sind.
rsync -av --dry-run --delete somedir/ user@remote:~/somedir/
Der --dry-run
Schalter listet nur die Dateien auf, ohne tatsächlich etwas zu tun. Der --delete
Schalter in Kombination mit -v
(verbose) listet die Dateien auf, die gelöscht würden, weil sie auf dem Remote-Host vorhanden sind, aber nicht auf dem lokalen Host, was Sie wollen.
Antwort2
Unison Dateisynchronisierertut genau das und verwendet den rsync-Algorithmus für die Schwerarbeit. Ich verwende es täglich.
Antwort3
Wenn Sie für die Rsync-Ausführung bereits SSH-Schlüssel haben, können Sie einen Remote-SSH-Befehl ausgeben und die Dateien im Verzeichnis auflisten und diese dann mit einer Kopie aus Ihrem lokalen Verzeichnis vergleichen.
ssh [email protected] ls -1 ~/foo > /tmp/remote.txt && ls -1 ~/foo > /tmp/local.txt && diff /tmp/remote.txt /tmp/local.txt
Extra-Punkt: Leiten Sie die Ausgabe von diff weiter anFarbunterschiedfür die Schönheit.