如何使用空格scp文件名?

我使用scp从远程计算机传输文件有点困难。 问题显然与包含文件的目录名称有关。它们位于名为photos 4的CD驱动器上( photos4之间有空格)。 当我尝试传输时,我使用了以下命令:

 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 ,我将file.jpg的副本复制到远程计算机的桌面,然后运行命令:

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

它起作用了,所以转义序列似乎是罪魁祸首。 我只是无法弄清楚它有什么问题。)

目录或文件名中的空格是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 .

一切都应该有效,但有些在语法上比其他人更容易理解……

参考文献:

  • 如何在linux中的scp复制期间转义路径中的空格?