使用SCP命令时如何转义Windows含空格的用户名
解决SCP命令中转义Windows含空格用户名的问题
当Windows远程用户名包含空格时,直接用双引号包裹用户名会被shell错误解析,导致Invalid username错误,以下是两种可靠的解决方法:
方法一:用单引号包裹整个用户名@主机地址
单引号可以让shell完全保留内部字符的原样,不会拆分参数,命令格式如下:scp -r 'nice guy'@xxx.xxx.xxx.xx:/c/path/to/folder /home/linux_username/Downloads注意:Windows路径需要转换为正斜杠格式,
C:\path\to\folder要写成/c/path/to/folder,避免反斜杠被shell当作转义符处理。方法二:用反斜杠转义用户名中的空格
在空格前添加反斜杠,明确告诉shell该空格是用户名的一部分,命令格式如下:scp -r nice\ guy@xxx.xxx.xxx.xx:/c/path/to/folder /home/linux_username/Downloads
另外需要注意:如果远程Windows开启的是OpenSSH服务,路径不要使用\C:\这类格式,必须换成正斜杠的/c/形式,否则会引发路径解析错误。
内容的提问来源于stack exchange,提问作者Tristan Tran
相关产品推荐
相关产品推荐

