
Ich habe ein kleines Problem mit scp
der Ü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 photos
und 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.jpg
auf 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:
scp [remote username]@192.168.1.X:"'/media/remote_username/photos 4/file.jpg'" .
scp [remote username]@192.168.1.X:"/media/remote_username/photos\ 4/file.jpg" .
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:
- scp '[email geschützt]:/media/"Fotos 4"/Datei.jpg' /home/Benutzername/Bilder
- scp '[email geschützt]:/media/"Fotos 4"/"Datei mit Leerzeichen.jpg"' /home/Benutzername/Bilder