Как мне найти имя файла с пробелами?

У меня есть небольшие трудности с использованием 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 варианта, которые вы можете попробовать:

  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 .

Все должно работать, но некоторые синтаксически легче понять, чем другие...

Рекомендации:

Вот исправление для пользователей ZSH,

  1. scp ' имя пользователя@192.168.1.X:/media/"фотографии 4"/file.jpg' /home/username/Pictures
  2. scp 'username@192.168.1.X : /media/"фотографии 4"/"файл с пробелом.jpg"' /home/username/Pictures
Другие вопросы по тегам