Leerzeichen maskieren unter Linux (Konsole)

Servus!
Habe hier ein kleines Problem: Ich habe nun *freu* verlorengeglaubte Ordner auf unserem Home-Server wiedergefunden.
Also habe ich mich an die Konsole gesetzt, um per ssh auf unseren Server zugreifen zu können.
Die meisten (um genau zu sein: 2 von 5 :wink: habe ich auch schon zu mir rüberkopiert.
Nun habe ich aber das Problem, dass die restlichen Ordner noch aus Windows-Zeiten stammen und somit Leerzeichen enthalten. Wenn ich die Ordner/Dateien nun per „scp“ zu mir rüberkopieren will, kann ich dies nicht tun, da meine Konsole ja die Leerzeichen als Parameter-Ende sieht.
Da habe ich mir gedacht: „Nun gut. Maskierst du die Leerzeichen halt.“ und siehe da: Bei Google gesucht und schon finde ich verschiedene Anleitungen zum maskieren. Leider funktioniert das nicht… ;-((

Ich habe es mit dem Anführungszeichen (") in jeglicher Variante und dem Backslash () und beiden zusammen versucht, aber die Konsole sieht trotz allem die Parameter nach dem Leerzeichen als abgeschlossen.
Wer kann mir helfen?
Gibt es noch ander Möglichkeiten, die Leerzeichen zu maskieren?

Hallo,

Das ist kein Shell-Problem resp. nicht nur, sondern (auch) ein scp Problem. Du musst die Leerzeichen 2x maskieren: 1x für die Shell und 1x für scp. Dies sieht dann ungefähr so aus:

scp „‚test tst‘“ „’/tmp/test abc’“

Mfg,
Pürsti

Hallo,

Ich habe es mit dem Anführungszeichen (") in jeglicher
Variante und dem Backslash () und beiden zusammen versucht,
aber die Konsole sieht trotz allem die Parameter nach dem
Leerzeichen als abgeschlossen.

Kannst Du mal eine Beispiel-Zeile posten? Welche Shell hast Du?

Gruß,

Sebastian

Hallo,

Das ist kein Shell-Problem resp. nicht nur, sondern (auch) ein
scp Problem. Du musst die Leerzeichen 2x maskieren: 1x für die
Shell und 1x für scp. Dies sieht dann ungefähr so aus:

scp „‚test tst‘“ „’/tmp/test abc’“

Danke jetzt funtkioniert’s! Aber leider hat sich ein neues Problem aufgetan… Und zwar steht jetzt da, dass der Ordner keine normale Datei ist:

scp: /home/user/mp3/konfi fotos: not a regular file

Das steht auch da (hab 'nen Tipp von meinem Dad bekommen), wenn ich versuche die Ordner mit

scp [email protected]:/home/user/sonstiges/konfi\* /home/user/pix/

kopieren will.
Liegt das auch an den Leerzeichen oder an etwas anderem?

Habe das Problem jetzt aber anders lösen können: Ich bin in die entsprechenden Ordner gegangen und habe die Dateien kopiert.
Trotzdem vielen Dank für die Hilfe!

Mfg,
Pürsti

thx4hlp
frolic

Hallo,

Ich habe es mit dem Anführungszeichen (") in jeglicher
Variante und dem Backslash () und beiden zusammen versucht,
aber die Konsole sieht trotz allem die Parameter nach dem
Leerzeichen als abgeschlossen.

Kannst Du mal eine Beispiel-Zeile posten? Welche Shell hast
Du?

Auch hier Danke für die Hilfe, auch wenn ich sie nicht mehr benötige! :wink:

Gruß,

Sebastian

mfg
frolic

Hi,

Das ist kein Shell-Problem resp. nicht nur, sondern (auch) ein
scp Problem. Du musst die Leerzeichen 2x maskieren: 1x für die
Shell und 1x für scp.

Wenn wir das Haar ganz genau in der Mitte spalten ist es beide Male fuer die shell: einmal fuer die lokale und einmal fuer die remote.

Dies sieht dann ungefähr so aus:
scp „‚test tst‘“ „’/tmp/test abc’“

Oder

$ scp $RHOST:'"foo bar "' .
$ scp $RHOST:"\"foo bar\"" .
$ scp $RHOST:foo\\\ bar .

oder beinah 1000 andere Kombinationen.

> scp: /home/user/mp3/konfi fotos: not a regular file

Ordner kopierst Du mit -r:

$ scp -r $RHOST:/home/user/mp3/konfi\\\ fotos .
$ man scp

Das steht auch da (hab 'nen Tipp von meinem Dad bekommen),
wenn ich versuche die Ordner mit

> scp [email protected]:/home/user/sonstiges/konfi\* /home/user/pix/

kopieren will.
Liegt das auch an den Leerzeichen oder an etwas anderem?

Aeh… nein. Das funktioniert nur mit Glueck: /home/user/sonstiges/konfi* wuerde von Deiner lokalen shell expandiert zu allen Dateien, die darauf passen. Da es gluecklicherweise keine Dateien auf Deinem Rechner gibt, auf die dieses Muster passt gibt die shell auf und uebergibt das Muster so wie es ist (mit *) an scp. Das reicht es an die remote shell weiter und die expandiert es vernuenftig. Ein lokales

$ touch /home/user/sonstiges/konfiguration

wuerde Dir den Spasz ganz schoen verderben. Dass es nicht funktioniert liegt daran, dass scp default keine Unterverzeichnisse kopiert.

Habe das Problem jetzt aber anders lösen können: Ich bin in
die entsprechenden Ordner gegangen und habe die Dateien
kopiert.

Vielleicht hast Du jetzt nicht nur das Problem geloest, sondern auch verstanden.

Gruss vom Frank.