2013-02-15 6 views

Antwort

102

Sie tun es auf die gleiche Weise wie ein Verzeichnis, aber Sie geben den vollständigen Pfad zum Dateinamen als Quelle an. In Ihrem Beispiel:

rsync -avz /var/www/public_html/.htaccess [email protected]<remote-ip>:/var/www/public_html/

+1

Wow, ist es wirklich so einfach? –

+30

Ja. Und nein. Aber meistens, ja. :] –

+12

Auch wenn Sie nur eine Datei senden, können Sie den Parameter "--progress" hinzufügen, damit Sie den Fortschritt verfolgen können. – JoshStrange

9

Michael Place Antwort funktioniert gut, wenn, bezogen auf das Stammverzeichnis für das Quell- und Ziel, alle Verzeichnisse in der Pfad der Datei bereits vorhanden ist.

Aber was, wenn Sie eine Datei mit diesem Quellpfad synchronisieren:

/Quelle-root/a/b/Datei

in eine Datei mit dem Pfad folgenden Ziels:

/Ziel-root/a/b/file

und die Verzeichnisse a und b existiert nicht?

Sie benötigen einen rsync-Befehl wie folgt auszuführen:

rsync -r --include="https://stackoverflow.com/a/" --include="https://stackoverflow.com/a/b/" --include="https://stackoverflow.com/a/b/file" --exclude="*" [source] [target]

+1

Wäre es nicht sicherer, die einzelne Datei einfach in einen vorhandenen Ordner zu kopieren oder die Ordner im Voraus zu erstellen? Im Falle einer Ordner- oder Ordner-Inhalts-Synchronisierung lassen Sie rsync alle Unterordner erstellen, schließlich ist es seine Arbeit, aber in diesem speziellen Fall ist es zu mühselig und kompliziert, die Parameter -include nur zum Kopieren einzelner Dateien zu verwenden. –

+0

@ user1598390 Ich bin mir nicht sicher, welches Szenario du annimmst oder vorstellst, wo dies weniger sicher wäre, aber wenn du versuchst, dich an die spezifische Form dieses Befehls zu erinnern und es nicht oft gemacht hast, dann ja wahrscheinlich weniger sicher als das Kopieren der einzelnen Datei. Es kann sicherer sein, wenn die Datei groß ist, d. H. Weil rsync automatisch die meisten Fehler behandelt, die während des Kopierens auftreten können. Für einige Kontexte war meine Syntax besonders nützlich für mich, weil ich Code geschrieben hatte, der Befehle in dieser Form erzeugte, so dass diese Befehle bei ausreichenden Tests, die den relevanten Code abdecken, "sicher" sind. –

Verwandte Themen