当尝试使用 SCP 将文件从 Linux(准确地说是 Raspbian,尽管我认为这并不重要)复制到 Windows 时:
scp a.txt {user}@{ip}:\C\Users\{user}\a.txt
文件已复制,但复制到C:\Users\{user}\CUsers{user}a.txt
.
看来我需要以某种方式转义“\”,但不知道如何转义。
答案1
虽然我从未scp
在 Windows 上使用过,所以我只是猜测,但看起来反斜杠确实被忽略了。或者,更确切地说,就好像它们被视为转义字符一样,并且由于它们没有转义任何相关内容,因此被忽略。在 Linux 机器上考虑一下:
$ cd \usr\share
bash: cd: usrshare: No such file or directory
正如您所看到的,\
被忽略并且路径连接到单个字符串,就像您上面所描述的那样。
默认目标位置scp
是用户的主目录。因此\C\Users\userName
,您尝试指定的路径将被用作文件名(\C\Users\userName\a.txt
变为CUsersuserNamea.txt
),并且该文件将以该名称保存在默认位置:C:\Users\userName\CUsersuserNamea.txt
。
在这种情况下,一个简单的解决方案是不指定路径:
scp a.txt user@ip:
答案2
使用 Windows 路径时,我建议使用相对路径,例如(相对于主目录):
scp a.txt {user}@{ip}:a.txt