使用 scp 将远程文件复制到本地桌面上的指定路径

使用 scp 将远程文件复制到本地桌面上的指定路径

我尝试使用 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

如果您正在使用 Cygwin scp,您可以尝试使用 Cygwin 路径:

scp user@host:main.php /cygdrive/c/main.php

您还可以pscp使用psftp油灰包 – 它们是本机 Win32 程序,不会抱怨 Windows 路径。

或者,温SCP是一个很好的 SCP/SFTP 客户端(主要是 GUI,但也带有命令行工具)。

答案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_FILEalone 给出了一个 cygwin 路径,但在 scp 命令中使用时,却出现了同样的错误,ssh:无法解析主机名 C:未提供主机名或服务名,或者未知

相关内容