
У меня возникли небольшие трудности с использованием scp
для передачи файлов с удаленного компьютера. Проблема, по-видимому, связана с именем каталога, в котором находятся файлы. Они находятся на CD-приводе под названием photos 4
(с пробелом между photos
и 4
). Когда я попытался выполнить передачу, я использовал следующую команду:
scp [remote username]@192.168.1.X:/media/[remote username]/photos\ 4/file.jpg /home/[username]/Pictures
Однако я получаю сообщение об ошибке, в котором говорится, что No directory: /media/[remote username]/photos
. Я думал, что обратная косая черта экранирует пробел, поэтому каталог будет читаться как photos 4
.
Может ли кто-нибудь объяснить мне, что я делаю не так?
(Кстати, я сделал копию file.jpg
на рабочем столе удаленного компьютера, а затем выполнил команду:
scp [remote username]@192.168.1.X:/home/[remote username]/Desktop/file.jpg /home/[username]/Pictures
и это сработало, так что, похоже, виновата последовательность побега. Я просто не могу понять, что с ней не так.)
решение1
Пробелы в именах каталогов или файлов являются естественными врагами системы Linux, но, конечно, могут бытьсбежалс должной осмотрительностью. Есть 3 возможности, которые вы можете попробовать:
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 .
Все должно работать, но некоторые синтаксически легче понять, чем другие...
Использованная литература:
решение2
Вот исправление для пользователей ZSH:
- УПП '[email protected]:/media/"photos 4"/file.jpg' /home/username/Pictures
- УПП '[email protected]:/media/"photos 4"/"file with space.jpg"' /home/username/Pictures