--files-from=FILE
Mit dieser Option können Sie die genaue Liste der Dateien angeben, zu übertragen (wie aus der angegebenen Datei oder lesen - für die Standardeingabe). Es zwickt auch das Standardverhalten von rsync nur die angegebenen Dateien und Verzeichnisse zu machen Übertragung einfacher:
Die --relative (-R) Option impliziert wird, die die Pfadinformationen erhält, die für jedes Element angegeben wird, in die Datei (benutze --no-relative oder --no-R, wenn du das ausschalten willst).
Die Option --dirs (-d) ist impliziert, die Verzeichnisse, die in der Liste auf dem Ziel angegeben sind, erstellt, anstatt sie geräuschvoll zu überspringen (verwenden Sie --no-dirs oder --no-d, wenn Sie möchten Schalt das aus).
Das Verhalten der Option --archive (-a) impliziert nicht --recursive (-r), also geben Sie es explizit an, wenn Sie es wollen.
Diese Nebeneffekte ändern den Standardzustand von rsync, sodass die Position der Option --files-from in der Befehlszeile keinen Einfluss darauf hat, wie andere Optionen analysiert werden (z. B. -a funktioniert vor oder) nach --files-from, wie auch --no-R und alle anderen Optionen.
Die Dateinamen, die aus der Datei gelesen werden, sind alle relativ zur Quelle dir - alle Schrägstriche werden entfernt und nicht „..“ Referenzen dürfen gehen höher als die Quelle Richt. Nehmen wir zum Beispiel diesen Befehl ein:
rsync -a --files-from=/tmp/foo /usr remote:/backup
Wenn/tmp/foo die Zeichenfolge "bin" (oder auch "/ bin") enthält, das Verzeichnis/usr/bin Verzeichnis als/Backup/bin auf die erstellt werden Remote-Host. Wenn es "bin /" enthält (beachten Sie den abschließenden Schrägstrich), wird auch der unmittelbare Inhalt des Verzeichnisses gesendet (ohne explizit in der Datei erwähnt zu werden - dies begann in Version 2.6.4).In beiden Fällen, wenn die Option -r aktiviert war, würde die gesamte Hierarchie dieses Verzeichnisses ebenfalls übertragen werden (bedenken Sie, dass -r explizit mit --files-from angegeben werden muss, da dies nicht durch -a impliziert ist). Beachten Sie außerdem, dass die Option --relative (standardmäßig aktiviert) nur zum Kopieren der Pfadinformationen verwendet wird, die aus der Datei gelesen werden. Sie erzwingt in diesem Fall keine Duplizierung des Quellpfadpfads (/ usr) ).
Zusätzlich kann die Datei --files-from vom Remote-Host anstelle des lokalen Hosts gelesen werden, wenn Sie vor der Datei einen "Host:" angeben (der Host muss mit einem Ende der Übertragung übereinstimmen) . Als Abkürzung können Sie nur ein Präfix von ":" angeben, um "das entfernte Ende der Übertragung zu verwenden". Zum Beispiel:
rsync -a --files-from=:/path/file-list src:/ /tmp/copy
Dies würde kopieren Sie alle angegebenen Dateien im Verzeichnis/Pfad/Datei-Liste-Datei, die auf dem Remote „src“ Host befand.
Wenn die Optionen --iconv und --protect-args angegeben sind und die Dateinamen von -files-from von einem Host an einen anderen gesendet werden, werden die Dateinamen vom Zeichensatz des sendenden Hosts zum Zeichensatz des empfangenden Hosts übersetzt .
HINWEIS: Wenn Sie die Liste der Dateien in der Eingabe --files-from sortieren, kann rsync effizienter sein, da so die Pfadelemente zwischen benachbarten Einträgen nicht erneut aufgerufen werden. Wenn die Eingabe nicht sortiert ist, werden einige Pfadelemente (implizierte Verzeichnisse) möglicherweise mehrmals gescannt, und rsync wird sie schließlich rückgängig machen, nachdem sie in in Dateilistenelemente umgewandelt wurden.
Leider funktioniert dies nicht mit einer großen Liste oder mit Dateien mit Leerzeichen im Namen. –
[Argumentliste zu lang] –