Wie kann ich einen Dateinamen mit Leerzeichen per SCP bearbeiten?

Wie kann ich einen Dateinamen mit Leerzeichen per SCP bearbeiten?

Ich habe ein kleines Problem mit scpder Übertragung von Dateien von einem Remotecomputer. Das Problem hängt anscheinend mit dem Namen des Verzeichnisses zusammen, in dem die Dateien enthalten sind. Sie befinden sich auf einem CD-Laufwerk namens photos 4(mit einem Leerzeichen zwischen photosund 4). Als ich die Übertragung versuchte, verwendete ich den folgenden Befehl:

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

Ich erhalte jedoch die Fehlermeldung No directory: /media/[remote username]/photos. Ich dachte, der Backslash würde das Leerzeichen maskieren, sodass das Verzeichnis als gelesen würde photos 4.

Kann mir jemand erklären, was ich hier falsch mache?

(Nebenbei habe ich eine Kopie file.jpgauf dem Desktop des Remotecomputers erstellt und dann den Befehl ausgeführt:

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

und es hat funktioniert, also scheint die Escape-Sequenz der Übeltäter zu sein. Ich kann einfach nicht herausfinden, was damit nicht stimmt.)

Antwort1

Leerzeichen in Verzeichnissen oder Dateinamen sind der natürliche Feind eines Linux-Systems, können aber natürlichentkammit der gebotenen Sorgfalt. Es gibt 3 Möglichkeiten, die Sie ausprobieren könnten:

  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 leichter zu verstehen als andere ...

Verweise:

Antwort2

Hier ist der Fix für ZSH-Benutzer:

  1. scp '[email geschützt]:/media/"Fotos 4"/Datei.jpg' /home/Benutzername/Bilder
  2. scp '[email geschützt]:/media/"Fotos 4"/"Datei mit Leerzeichen.jpg"' /home/Benutzername/Bilder

verwandte Informationen