如何在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解释,然后第二级引号将保留这些空格。