![使用 scp 将远程文件复制到本地桌面上的指定路径](https://linux22.com/image/1208952/%E4%BD%BF%E7%94%A8%20scp%20%E5%B0%86%E8%BF%9C%E7%A8%8B%E6%96%87%E4%BB%B6%E5%A4%8D%E5%88%B6%E5%88%B0%E6%9C%AC%E5%9C%B0%E6%A1%8C%E9%9D%A2%E4%B8%8A%E7%9A%84%E6%8C%87%E5%AE%9A%E8%B7%AF%E5%BE%84.png)
我尝试使用 SCP 从远程服务器复制文件,但出现以下错误。
bash-3.2$ scp username@server:main.php C:\main.php
ssh:无法解析主机名 C:未提供主机名或服务名,或者未知
它假设 C: 作为主机名,但它只是驱动器名称..请让我如何明确指定,例如一些转义,以摆脱这个问题。
如果我没有指定在本地桌面上保存的路径,它可以正常工作。
bash-3.2$ scp username@server:main.php main.php
main.php 100% 29KB 28.9KB/s 00:01
感谢任何帮助..提前致谢,
注:使用Windows XP SP2
答案1
答案2
使用 PSCP.exe
您遇到的问题是因为您正在从 shell 引用 Windows XP 驱动器,而您无法做到这一点。您远程登录到一台机器,因此除非您的 Windows XP 机器正在运行 ssh 服务器,在这种情况下,您将使用登录名和密码信息作为目标位置,否则您将无法做到这一点。
使用 pscp.exe(免费)您可以做您想做的事情。
答案3
@grawity 说得对。将来,你也可以运行
pwd
找出您所在的目录,以便您可以根据 cygwin 找出所需目录的正确路径。
答案4
相关:我需要在路径中使用局部变量,发现使用cygpath
非常有帮助。
例如
scp $MY_FILE [email protected]
变得:
scp `cygpath $MY_FILE ` [email protected]
讽刺的是,just: echo $MY_FILE
alone 给出了一个 cygwin 路径,但在 scp 命令中使用时,却出现了同样的错误,ssh:无法解析主机名 C:未提供主机名或服务名,或者未知