Ich möchte die Inhalte zweier Verzeichnisse synchronisieren.
- Ohne Überschreiben, sondern zum Erstellen einer Kopie, wenn zwei Dateien den gleichen Namen, aber unterschiedliche Größen haben
- Ohne Duplizieren, wenn zwei Dateien den gleichen Namen und die gleiche Größe haben.
- Rekursiv arbeiten
Bisher habe ich den folgenden Befehl gefunden, der funktionieren könnte
$ rsync -varE --progress ~/folder /volumes/server/folder
Aber ich bin mir nicht ganz sicher, was die -E
Flagge macht. Sie wurde von einem Benutzer auf bananica.com vorgeschlagen, aber ich konnte im Handbuch keine Beschreibung dafür finden. Würde sie erfolgreich das tun, was ich brauche?
Antwort1
-E behält unter OS X tatsächlich erweiterte Attribute bei, aber -a (--archive) impliziert -p (--perms), was wiederum --executability impliziert.
-b (--backup) fügt am Ende von Dateien, die normalerweise überschrieben würden, eine Tilde hinzu:
rsync -ab ~/folder /Volumes/server/
-b --suffix _old
würde file.txt in file.txt_old umbenennen
rsync vergleicht standardmäßig sowohl die Dateigröße als auch die Änderungszeiten. --size-only vergleicht nur die Größe. -c vergleicht Prüfsummen, ist aber langsamer.