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: