it-swarm.com.de

Erstellt scp den Zielordner, wenn er nicht vorhanden ist

Ich frage mich, ob scp den Zielordner erstellen wird, wenn er auf dem Remote-Server nicht vorhanden ist. Zum Beispiel würde das funktionieren?

scp -r /data/install/somefolder [email protected]:/data/install/somefolder

Hier der Ordner /data/install/somefolder existiert nicht auf dem FTP-Server, würde dieser Befehl es also erstellen?

N.B. Ich habe über rsync gelesen, bin mir aber noch nicht sicher, wie es funktioniert oder wie ich es verwenden soll.

31
Benoit Paquette

So erreichen Sie die Aufgabe mit ssh und scp (anstelle von rsync):

Lösung

Lassen Sie uns in zwei Schritte einteilen:

1. Erstellen Sie ein Verzeichnis, falls es fehlt:

ssh [email protected] "mkdir -p /data/install/somefolder"

2. Kopieren Sie darauf:

scp -r /data/install/somefolder [email protected]:/data/install/somefolder

Setze sie zusammen

server="[email protected]"
destiny="/data/install/somefolder"
src="/data/install/somefolder"
ssh "$server" "mkdir -p $destiny" && scp -r "$src" "$server:$destiny"
42
Thamme Gowda

Kurze Antwort: nein.

... aber rsync tut es, weshalb ich scp auf rsync -Pravdtze ssh auf meiner Box verfälscht habe. Ja, das sind viele Switches, die in Kombination mein bevorzugtes Rsync-Verhalten erzeugen. Da rsync eine sehr umfangreiche Auswahl an Schaltern und Optionen bietet, empfehlen wir Ihnen, einige Nachforschungen anzustellen, um festzustellen, was Ihren Anforderungen am besten entspricht. Manpage ist ein guter Anfang, aber es gibt viele Informationen, die leicht verfügbar sind. Hier ist ein anständige Liste von Beispielen .

Bearbeiten: In diesem speziellen Fall wird der Ordner erstellt, da dies der Ordner ist, den Sie kopieren. Wenn Sie jedoch versuchen, es nach [email protected]:somenonexistentfolder/somefolder Zu kopieren, schlägt dies fehl.

21
Jarmund