Wie kopiere ich eine Datei mit scp mit Sonderzeichen?

8

Ich versuche, eine Datei mit Doppelpunkten und Punkten zu kopieren, z. B.:

scp "test.json-2014-08-07T11:17:58.662378" remote:tmp/

scp test.json-2014-08-07T11\:17\:58.662378 remote:tmp/

und Kombinationen mit Datei:

scp "file:///home/.../test.json-2014-08-07T11:17:58.662378" remote:tmp/

Ich vermute, dass scp versucht, Teile der Datei als Server- und / oder Portnummer zu interpretieren. Wie vermeide ich das?

Wenn ich die Datei in test.json umbenenne, funktioniert das in Ordnung scp test.json remote:tmp/, aber nicht einmal scp test*62378 remote:tmp/.

Finn Årup Nielsen
quelle
Lassen Sie mich nur bemerken, dass eine offensichtliche "Lösung" darin besteht, die Datei umzubenennen, zu kopieren und wieder auf dem Remote-Server umzubenennen.
Finn Årup Nielsen
Eine Erklärung, warum globs ( *) nicht funktioniert. Es wird in der Shell ausgeführt, sodass genau derselbe Text (Argument) an übergeben wird scp. Sie müssen den Text (Argument) ändern, an den übergeben wird scp. (Siehe Antwort unten, um zu erfahren, in was das
Textargument
Es sollte beachtet werden, dass :es sich unter OSX um ein unzulässiges Dateinamenzeichen handelt. Wenn Sie diese Dateien also jemals dort übertragen müssen, sollten Sie dies beachten.
Daenyth
Wenn der Dateiname in Cygwin mit einem Bindestrich beginnt, können Sie der Datei einen doppelten Bindestrich scp -- -1.JvSbrpchxuk.png [email protected]:/tmp
voranstellen,

Antworten:

18

Verwenden Sie ./vor Ihrem Dateinamen:

scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/

Das macht scpwissen , dass es eine Datei ist. Ohne es scpdenkt, es ist ein Hostname wegen des Doppelpunkts.

cuonglm
quelle
4

Verwenden Sie den Pfad, indem Sie vorangestellt sind, ./und entkommen Sie Ihrem :. Cyberiti hat mehr Infos . Beispiel:

scp ./file\:with\:colons.txt remoteserver:
Karlo
quelle
2
Sie müssen dem Doppelpunkt nicht entkommen.
Cuonglm
Ihre Flucht :erfolgt auf Shell-Ebene, nicht auf SCP-Ebene.
Strg-Alt-Delor
Ja, du musst fliehen. Zumindest in meiner Muschel brauche ich die Flucht.
Finn Årup Nielsen
@ FinnÅrupNielsen: Was ist deine Muschel? Sie müssen dem Doppelpunkt nicht entkommen, die Shell fügt Backslash für Sie hinzu. Sie können sie entfernen und sehen, dass es immer noch funktioniert.
Cuonglm
Ich lag falsch. scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/funktioniert tatsächlich! Es tut uns leid.
Finn Årup Nielsen