
Ich habe einen Ordner auf dem USB-Stick, der an meinen Router angeschlossen ist, in den ich Dateien kopiere, die beim Start mit meinem HTPC synchronisiert werden sollen. Beim Start wird dieses kleine Synchronisierungsskript ausgeführt.
rsync --remove-source-files --ignore-existing -a source/ destination
Dadurch werden Dateien auf den HTPC verschoben und die Dateien im Quellverzeichnis gelöscht. Wenn die Datei jedoch bereits vorhanden ist, wird nichts kopiert (es erfolgt keine Überprüfung auf Zeitstempel, nur eine Überprüfung des Dateinamens). Ich möchte jedoch die Dateien im Quellverzeichnis löschen, wenn rsync erkennt, dass im Zielverzeichnis bereits eine Datei mit demselben Namen vorhanden ist.
Kann dies mit rsync gemacht werden?
Antwort1
Gute Frage. Ich habe einen ähnlichen Anwendungsfall, bei dem ich Filezilla zum Hochladen verwendet habe (da es in diesem speziellen Fall aufgrund paralleler Verbindungen schneller wäre) und wollte, dass rsync lediglich eine Überprüfung durchführt und die übertragenen Quelldateien löscht.
Ich habe rsync dazu gezwungen -c
. Erst dann löscht es auch die Quelldateien, wo es das vorher nicht getan hat, mit der normalen Skip-Prüfung (basierend auf Größe+Zeit).