it-swarm.com.de

Wie scp ich einen Dateinamen mit Leerzeichen?

Ich habe ein kleines Problem mit scp, um Dateien von einem Remote-Computer zu übertragen. Das Problem hat anscheinend mit dem Namen des Verzeichnisses zu tun, in dem sich die Dateien befinden. Sie befinden sich auf einem CD-Laufwerk mit dem Namen photos 4 (mit einem Leerzeichen zwischen photos und 4). Als ich die Übertragung versuchte, habe ich den folgenden Befehl verwendet:

scp [remote username]@192.168.1.X:/media/[remote username]/photos\ 4/file.jpg /home/[username]/Pictures

Im Gegenzug erhalte ich jedoch die Fehlermeldung No directory: /media/[remote username]/photos. Ich dachte, der Backslash würde aus dem Leerzeichen herauskommen, so dass das Verzeichnis als photos 4 gelesen würde.

Kann mir jemand mitteilen, was ich hier falsch mache?

(Nebenbei habe ich eine Kopie von file.jpg auf dem Desktop des Remote-Computers erstellt und dann den folgenden Befehl ausgeführt:

scp [remote username]@192.168.1.X:/home/[remote username]/Desktop/file.jpg /home/[username]/Pictures

und es hat funktioniert, so dass die Fluchtsequenz der Schuldige zu sein scheint. Ich kann einfach nicht herausfinden, was daran falsch ist.)

6
Alcuin Arundel

Leerzeichen in Verzeichnissen oder Dateinamen sind der natürliche Feind eines Linux-Systems, können aber natürlich mit gebührender Sorgfalt ausgeblendet werden . Es gibt 3 Möglichkeiten, die Sie ausprobieren können:

  1. scp [remote username]@192.168.1.X:"'/media/remote_username/photos 4/file.jpg'" .
  2. scp [remote username]@192.168.1.X:"/media/remote_username/photos\ 4/file.jpg" .
  3. scp [remote username]@192.168.1.X:/media/remote_username/photos\\\ 4/file.jpg .

Alle sollten funktionieren, aber einige sind syntaktisch einfacher zu verstehen als andere ...

Referenzen:

6
andrew.46