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/
.
*
) nicht funktioniert. Es wird in der Shell ausgeführt, sodass genau derselbe Text (Argument) an übergeben wirdscp
. Sie müssen den Text (Argument) ändern, an den übergeben wirdscp
. (Siehe Antwort unten, um zu erfahren, in was das:
es sich unter OSX um ein unzulässiges Dateinamenzeichen handelt. Wenn Sie diese Dateien also jemals dort übertragen müssen, sollten Sie dies beachten.scp -- -1.JvSbrpchxuk.png [email protected]:/tmp
Antworten:
Verwenden Sie
./
vor Ihrem Dateinamen:Das macht
scp
wissen , dass es eine Datei ist. Ohne esscp
denkt, es ist ein Hostname wegen des Doppelpunkts.quelle
Verwenden Sie den Pfad, indem Sie vorangestellt sind,
./
und entkommen Sie Ihrem:
. Cyberiti hat mehr Infos . Beispiel:quelle
:
erfolgt auf Shell-Ebene, nicht auf SCP-Ebene.scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/
funktioniert tatsächlich! Es tut uns leid.Anscheinend habe ich diese Version mit Pfadpräfix nicht ausprobiert:
das funktioniert auch:
Von https://twitter.com/h0pbeat/status/497319751031353344 und http://www.cyberciti.biz/faq/rsync-scp-file-name-with-colon-punctuation-in-it/ Danke.
(wie die oben genannten Benutzer vor mir antworten konnten)
quelle