Wie kann ich rsync Dateien auf einem remote-Verzeichnis, das nicht existiert?
Angenommen, ich möchte rsync-Datei foo.txt
auf meinem lokalen Rechner, um die Datei /home/me/somedirectory/bar.txt
auf einem remote-computer, und dass somedirectory/
noch nicht vorhanden. Wie mache ich das?
Versuchte ich rsync -e ssh -z foo.txt remotemachine:/home/me/somedirectory/bar.txt
, aber ich bekomme rsync: push_dir#3 "/home/me/somedirectory" failed: No such file or directory (2)
Fehler.
(Kopieren der Datei ohne umbenennen funktioniert es, obwohl. Das heißt, das gut läuft: rsync -e ssh -z foo.txt remotemachine:/home/me/somedirectory/`)
- Ich denke, Sie finden die gleiche Frage beantwortet haben here.
- Ich habe versucht, das hinzufügen der
--recursive
Flagge, aber ich bekomme den gleichen Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen Sie einfach einen trailing slash an Ihre target-dir. So etwas wie dieses:
rsync foo.txt remotemachine:somedirectory/
Davon aus, dass "/home/me" wird Ihr home-Verzeichnis auf dem remote-Computer, es gibt keine Notwendigkeit, geben Sie in die Befehlszeile. Auch, Sie nicht brauchen, um herauf Ihren rsync mit der -e, es sei denn, Sie möchten nur, das zu tun.
Können Sie tun, diesen Prozess erfolgreich in 2 stepes:-
1]
rsync -e ssh -z foo.txt remotemachine:/home/me/somedirectory/
dies wird kopieren Sie die foo.txt und Verzeichnis erstellen
somedirectory
auf Ziel.dann
2]
rsync -e ssh -z --delete-after foo.txt remotemachine:/home/me/somedirectory/bar.txt
und hier können Sie Sie löschen foo.txt auf das Ziel durch Verwendung
--delete-after
option.wie Sie sehen können ist die Nutzung von man-Seiten. Diese option muss verwendet werden mit der option-r
Dies dient Ihrem Zweck.
oder wenn der zweite Befehl nicht funktioniert, dann verwenden :-
rsync -e ssh -z foo.txt remotemachine:/home/me/somedirectory/bar.txt
und löschen foo.txt manuell.