是的,我确实意识到已经被问了上千次如何在scp中转义空格,但是我没有用 &-符号做到这一点,所以如果那个符号是目录名的一部分。
[sorunome@sorunome-desktop tmp]$ scp test.txt "bpi:/home/sorunome/test & stuff"
zsh:1: command not found: stuff
lost connection
&符号看起来会把事情搞得一团糟,使用&不会解决问题,因为找不到远程目录:
[sorunome@sorunome-desktop tmp]$ scp test.txt "bpi:/home/sorunome/test \& stuff"
scp: ambiguous target
即使省略引号并在所有地方添加\也不行:
[sorunome@sorunome-desktop tmp]$ scp test.txt bpi:/home/sorunome/test\ \&\ stuff
zsh:1: command not found: stuff
lost connection
所以,有什么想法吗?
5条答案
按热度按时间hpcdzsge1#
去掉空格和“与”符号对我来说很有效:
出于某种原因,这些引用仍然是必要的。
ltqd579y2#
当使用scp或cp时,特殊字符可能会中断文件路径。您可以通过转义特殊字符来解决此问题。
使用cp可以使用转义特殊字符的常规方法,即在特殊字符前加一个反斜杠。例如,可以使用以下命令复制带空格的路径:
第一个月
scp中的远程路径无法使用此方法进行转义。您需要使用双反斜杠转义特殊字符。使用相同的示例,My Photos文件夹将使用以下方法进行空间转义:
scp photo.jpg "user@remotehost:/home/user/My\\ Photos/photo.jpg"
双引号也很重要,包含特殊字符的整个路径必须用双引号括起来。
来源:https://dominichosler.wordpress.com/2011/08/27/using-scp-with-special-characters/
v8wbuo2f3#
如果需要转义
%
,请使用%%
brgchamk4#
用另一对
\"
将文件名括起来,如下所示:由于文件名内不需要更改任何内容,因此这可以直接应用于变量:
外引号(
"
)由本地shell解释,内引号(\"
)在远程服务器上解释,感谢@chepner指出如何处理两次参数。wswtfjt75#
这就是我的工作: