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/.


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 user@example.com:/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.


4

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

scp ./file\:with\:colons.txt remoteserver:

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.