webentwicklung-frage-antwort-db.com.de

Wie kann ich den Befehl scp zum Überschreiben des Zielordners ausführen?

Ich benutze den scp-Befehl, um einige Dateien auf einen Remote-PC zu kopieren, wie Sie es mit scp tun :)

Ich stelle fest, dass das Standardverhalten einer scp-Kopie für Dateien darin besteht, alle vorhandenen Dateien zu überschreiben. Jetzt möchte ich einen Ordner kopieren, damit ich im Grunde dasselbe mache:

scp -r <source_path> [email protected]:<dest_path>

Wo die Teile in <> sind meine Ordnerpfade. Wenn ich dies jedoch ausführe, erhalte ich die Meldung "Datei existiert". Gibt es einen Weg, dies zu umgehen? eine Art von Kraft überschreiben?

Danke, Futter

34
code_fodder

Wie bereits erwähnt, überschreibt scp fröhlich alle Dateien, die bereits vorhanden sind.

Das Problem "Datei vorhanden" kann nur auftreten, wenn Sie einen anderen Prozess (z. B. einen gleichzeitigen scp-Prozess oder etwas anderes) haben, der Ordner und Dateien an dasselbe Ziel schreibt. Erwägen Sie stattdessen die Verwendung von rsync.

21
nicolasochem

Wie Levans konnte ich dies nicht replizieren, aber haben Sie darüber nachgedacht, stattdessen rsync über ssh zu verwenden? Wenn Sie eine große Anzahl von Dateien kopieren, ist rsync möglicherweise eine bessere Option als scp. Es gibt eine Reihe guter Online-Anleitungen, wie zum Beispiel die folgenden:

http://troy.jdmz.net/rsync/index.htmlhttps://calomel.org/rsync_tips.html

Dieser erste Link befasst sich mit automatisierten Sicherungen über cron, sodass einige der Anweisungen (wie das Erstellen eines SSH-Schlüssels ohne Passphrase) für Sie möglicherweise nicht relevant sind.

4
Ben

Sie erhalten diese Fehlermeldung, wenn das Zielverzeichnis bereits eine Datei mit demselben Namen wie das Quellverzeichnis enthält, das Sie übertragen möchten. Sie können keine Datei mit demselben Namen wie ein Verzeichnis im selben Verzeichnis haben.

3
EvR2f