Как мне найти имя файла с пробелами?
У меня есть небольшие трудности с использованием scp
передавать файлы с удаленного компьютера. Эта проблема, очевидно, связана с именем каталога, в котором находятся файлы. Они находятся на компакт-диске под названием 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
и это сработало, так что побег последовательность кажется виновником. Я просто не могу понять, что с ним не так.)
2 ответа
Пробелы в каталогах или именах файлов являются естественным врагом системы 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 .
Все должно работать, но некоторые синтаксически легче понять, чем другие...
Рекомендации:
Вот исправление для пользователей ZSH,
- scp ' имя пользователя@192.168.1.X:/media/"фотографии 4"/file.jpg' /home/username/Pictures
- scp 'username@192.168.1.X : /media/"фотографии 4"/"файл с пробелом.jpg"' /home/username/Pictures