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


10

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

感谢您的帮助。

PS:使用Windows XP SP2

Answers:


14

如果您使用的是Cygwin scp,则可以尝试使用Cygwin路径:

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

您还可以使用PuTTY软件包中包含的pscppsftp命令-它们是本地Win32程序,不会抱怨Windows路径。

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


实际上是/ cygdrive / c。
亚当·罗森菲尔德2009年

感谢您推荐的GUI。请注意,WinSCP允许您更改与其一起使用的编辑器,并将与emacsclientw结合使用。
吉尔斯·罗伯茨

1
@grawity实际上您之前是正确的。/cygdrive/c默认情况下,它是运行的,但是许多cygwin用户都运行mount --change-cygdrive-prefix /该命令,因为它更容易键入/c/detc);)
DavidPostill

2

使用PSCP.exe

您遇到的问题是因为您从无法执行的外壳中引用Windows XP驱动器。您将远程登录到计算机,因此,除非您的Windows XP盒中运行的是ssh服务器,否则在这种情况下,您将使用登录名和密码信息作为目标位置,否则将无法执行此操作。

使用pscp.exe(免费),您可以执行所需的操作。


0

@grawity是正确的。将来,您还可以运行

pwd

找出您所在的目录,以便根据cygwin找出所需目录的正确路径。


0

我有类似的问题,并成功使用了:

scp username @ server:main.php /c/main.php

这只是其他人提到的那种。


3
实际上,这不是superuser.com/a/291841/53590讨论的内容吗?在指出后者是正确的格式之后,将其从/ c /编辑为/ cygdrive / c /。
CVn 2015年

0

相关:我需要在路径中使用局部变量,并发现使用 cygpath非常有帮助。

例如

scp $MY_FILE ubuntu@192.128.23.23

成为:

scp `cygpath $MY_FILE ` ubuntu@192.128.23.23 

具有讽刺意味的是,只是: echo $MY_FILE单独给出了cygwin路径,但是在scp命令中使用了它,却以某种方式没有,并吐出了相同的错误,ssh:无法解析主机名C:提供的主机名或servname,或者未知

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.