带有空格的安全复制 (scp) 文件名的问题

pra*_*tri 9 linux command-line scp

我正在尝试使用安全副本(scp)复制文件。我正在尝试执行以下命令,但由于目录位置的绝对路径中的空间而出现错误。

scp -r -P 8484 root@172.31.72.103:/media/New Volume/lj /home/pratheep
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

scp: /media/New: No such file or directory  
scp: Volume/lj: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我尝试使用相同的命令添加额外的反斜杠

scp -r -P 8484 root@172.31.72.103:/media/New\ Volume/lj /home/pratheep
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到同样的错误。

有人可以告诉我如何纠正它吗?

enz*_*tib 18

您应该将文件名引用两次,一次用于本地 shell,一次用于远程 shell。在最简单的情况下,您可以执行以下操作之一

scp -r -P 8484 root@172.31.72.103:"'/media/New Volume/lj'" /home/pratheep
scp -r -P 8484 root@172.31.72.103:'"/media/New Volume/lj"' /home/pratheep
Run Code Online (Sandbox Code Playgroud)

或使用选项卡完成的帮助

scp -r -P 8484 root@172.31.72.103:/media/New\\\ Volume/lj /home/pratheep
Run Code Online (Sandbox Code Playgroud)

  • 注意到 `scp` 使用 `ssh` 作为它的传输是有帮助的,这解释了为什么会发生两次 shell 解释。 (3认同)