如何在Linux中的SCP副本中转义空间的path?

我是新来的Linux,我想复制一个文件从远程到本地系统…现在我正在使用scp命令在Linux系统..我有一些文件夹或文件的名称与空格,当我试图复制文件,它显示错误信息:“没有这样的文件或目录”

我试过了:

scp ael5105@192.168.0.200:'/home/5105/test/gg/Untitled Folder/a/qy.jpg' /var/www/try/ 

我在网上看到了一些参考资料,但是我不太了解,有没有人可以帮忙?

如何在复制期间转义文件名或目录名称中的空格…

基本上你需要逃避两次,因为它在本地逃跑,然后在远程逃脱。

有几个选项可以做(在bash中):

 scp user@example.com:"'web/tmp/Master File 18 10 13.xls'" . scp user@example.com:"web/tmp/Master\ File\ 18\ 10\ 13.xls" . scp user@example.com:web/tmp/Master\\\ File\\\ 18\\\ 10\\\ 13.xls . 

作品

 scp localhost:"f/a\ b\ c" . scp localhost:'f/a\ b\ c' . 

不起作用

 scp localhost:'f/abc' . 

原因是该string在path传递给scp命令之前由shell解释。 所以,当它到达远程时,远程正在寻找带有未转义引号的string,并且失败

为了看到这一点,使用-vx选项(例如bash -vx启动一个shell,并在运行命令时显示插入的命令版本。

你也可以做这样的事情:

 scp foo@bar:"\"apath/with spaces in it/\"" 

第一级引用将由scp解释,然后第二级引号将保留这些空格。