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…






hey, danke. hat mir grad 5 oder 10min suchen erspart 🙂
gerade solche kleinigkeiten können einen ziemlich aufhalten.
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
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’/..
Wie aber wenn man z.B. per „*.jpg“ mehrere Dateien kopieren möchte und Dateien mit Leerzeichen im Dateinamen dabei sind?
Schön, hier auf so alte Posts noch Kommentare zu bekommen 😀
Es sollte für den genannten Fall vollkommen analog funktionieren: