我是Linux的新手,我想从远程系统复制一个文件到本地系统......现在我在Linux系统中使用scp命令。我有一些文件夹或文件的名称是带空格的,当我试图复制该文件时,它显示错误信息:"没有这样的文件或目录"。
我试过了。
scp [email protected]:'/home/5105/test/gg/Untitled Folder/a/qy.jpg' /var/www/try/
我在网上看到一些参考资料,但我不太明白,谁能帮帮我?
在复制过程中,如何在文件名或目录名中转义空格...
基本上你需要转义两次,因为它在本地转义,然后在远程端转义。
有几个选项你可以做(在bash中)。
scp [email protected]:"'web/tmp/Master File 18 10 13.xls'" .
scp [email protected]:"web/tmp/Master\ File\ 18\ 10\ 13.xls" .
scp [email protected]:web/tmp/Master\\\ File\\\ 18\\\ 10\\\ 13.xls .
我在使用shell变量时遇到了巨大的困难,因为这个变量包含一个带空格的文件名。 由于某些原因,在使用
file="foo bar/baz"
scp [email protected]:"'$file'"
如@Adrian'的回答似乎失败了。
结果发现,最好的办法是使用参数扩展来将反斜杠预置到空白处,如下所示。
file="foo bar/baz"
file="${file//\ /\\\ }"
scp [email protected]:"$file"
对不起,用这个Linux问题把这个提示放在Windows 10上的Powershell。 在这种情况下,用反斜杠或用引号包围的空格字符转义对我不起作用。 效率不高,但我用"?"解决了这个问题。 字符来代替。
对于文件"tasks.txt Jun-22.bkp"。 我用"tasks.txt?Jun-22.bkp"下载。