RSYNC ist ein hilfreiches Dienstprogramm in Unix-Systemen, das häufig für Sicherungen und Spiegelungen von Dateien verwendet wird. Eine oft gestellte Frage ist, wie nur Dateien, die nach einem bestimmten Datum geändert wurden, synchronisiert werden können.
RSYNC bietet jedoch nicht direkt eine Möglichkeit, Dateien basierend auf ihrem Änderungsdatum zu filtern. Stattdessen können Sie dies indirekt erreichen, indem Sie zuerst eine Liste der seit einem bestimmten Datum geänderten Dateien erstellen und dann RSYNC verwenden, um nur diese Dateien zu synchronisieren.
Ein Tool, das hier hilfreich sein kann, ist `find`. Mit `find` können Sie eine Liste der Dateien erstellen, die seit einem bestimmten Datum geändert wurden.
Hier ist ein Beispiel dafür, wie Sie `find` verwenden können, um eine Liste der seit dem 1. Januar 2022 geänderten Dateien zu erstellen:
```
find /pfad/zum/verzeichnis -type f -newermt 2022-01-01 > dateiliste.txt
```
Dieser Befehl sucht in `/pfad/zum/verzeichnis` nach Dateien (`-type f`), die seit dem 1. Januar 2022 (`-newermt 2022-01-01`) geändert wurden, und schreibt die Ergebnisse in `dateiliste.txt`.
Nachdem Sie die Liste erstellt haben, können Sie RSYNC verwenden, um die Dateien zu synchronisieren:
```
rsync -av —files-from=dateiliste.txt /pfad/zum/verzeichnis/ /ziel/verzeichnis/
```
Dieser Befehl sagt RSYNC, dass es die Quelldateiliste aus `dateiliste.txt` (—files-from=dateiliste.txt) lesen soll und dass es Dateien von `/pfad/zum/verzeichnis/` zu `/ziel/verzeichnis/` kopieren soll.
Bitte beachten Sie, dass dieser Ansatz nicht perfekt ist. Zum Beispiel, wenn eine Datei seit dem 1. Januar 2022 in einem Unterordner geändert wurde, aber der Unterordner selbst nicht geändert wurde, wird die Datei möglicherweise nicht in der Liste enthalten sein. Es gibt Lösungen für diese Art von Problemen, aber sie sind komplexer und gehen über den Umfang dieser Antwort hinaus.
Auch beachten Sie bitte, dass das Änderungs-Kriterium mit `find` `-newermt` nicht zuverlässig funktioniert, wenn die Dateien über Zeitzonen hinweg geändert werden.
Sources:
- [RSYNC man page](https://linux.die.net/man/1/rsync)
- [Find man page](https://linux.die.net/man/1/find)
- [StackExchange: Using find to list all files modified yesterday](https://unix.stackexchange.com/questions/24653/using-find-to-list-all-files-modified-yesterday)