scp und Leerzeichen
Damit es jetzt mal irgendwo steht :
Will man per scp eine Datei oder ein Verzeichnis kopieren, in deren Namen Leerzeichen enthalten sind, muss man die Leerzeichen „escapen“ (also \ Zeichen voran stellen) und den Namen außerdem in einfache Anführungszeichen packen, z.B. so:
scp markus@localhost:/home/Markus/'Meine\ Kleine\ Beispieldatei.xcf' ./temp/
Warum das so ist? Nun, ohne die Anführungszeichen werden die \ schon von der lokalen Shell interpretiert und auf dem Zielrechner kommen wieder nur Leerzeichen an. Mit den Anführungszeichen wird der Ausdruck dann richtig übergeben.
Warum ich das hier jetzt schreibe? Nun, hin und wieder werde ich nach „so etwas“ gefragt ;), und nachdem ich geantwortet habe, folge „Warum steht das bloß nirgends?“ . Ich habe nicht weiter überprüft, ob es wirklich nirgends steht (kann ich mir nicht vorstellen), und es direkt nochmal niedergeschrieben…
Am 9. August 2007 um 00:20 Uhr
hey, danke. hat mir grad 5 oder 10min suchen erspart
gerade solche kleinigkeiten können einen ziemlich aufhalten.
Am 23. September 2008 um 11:06 Uhr
hossa,
irgendwann hatte ich das auch mal hinbekommen, aber die chance, durch try ’n error genau DARAUF zu kommen, ist schon relativ niedrig – danke.
vg
demscroob
Am 15. Dezember 2014 um 16:24 Uhr
Das ist auch notwendig wenn ein Verzeichnisname mit einem Sonderzeichen beginnt.
z.B. Das Verzeichnis „$RCE“ wird automatisch bei Pfaden maskiert „../\$RCE/..“. Bei scp also ../’\$RCE’/..
Am 2. Februar 2017 um 22:28 Uhr
Wie aber wenn man z.B. per „*.jpg“ mehrere Dateien kopieren möchte und Dateien mit Leerzeichen im Dateinamen dabei sind?
Am 3. Februar 2017 um 10:07 Uhr
Schön, hier auf so alte Posts noch Kommentare zu bekommen
Es sollte für den genannten Fall vollkommen analog funktionieren: