如何使用空格 scp 文件名?

Alc*_*del 11 ssh command-line scp transfer

我在使用scp从远程计算机传输文件时遇到了一些困难。这个问题显然有与文件包含在目录中的名称做。他们是被称为CD驱动器photos 4(带之间的空间photos4)。当我尝试传输时,我使用了以下命令:

scp [remote username]@192.168.1.X:/media/[remote username]/photos\ 4/file.jpg /home/[username]/Pictures
Run Code Online (Sandbox Code Playgroud)

但是,我收到一条错误消息作为回报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
Run Code Online (Sandbox Code Playgroud)

它起作用了,所以转义序列似乎是罪魁祸首。我只是想不通它有什么问题。)

and*_*.46 13

在目录或文件名空间是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 .

所有都应该工作,但有些在语法上比其他人更容易理解......

参考: