scp /path/to/local/file myusername@server.com 在本地目录中创建一个新文件?

Zoe*_*oey 3 ssh scp

scp 工作正常,但现在当我这样做时

$ scp /path/to/local/file myusername@servername.com
Run Code Online (Sandbox Code Playgroud)

它不会询问我的密码,但不会立即返回任何内容,并在目录中创建一个名为“myusername@servername.com”的新文件。

另外,我没有问题 ssh 到服务器,它要求我输入密码,我可以成功登录。

$ ssh myusername@servername.com
Run Code Online (Sandbox Code Playgroud)

周末我做了一些配置,将 VIM 设置为 C++ 的 IDE,所以我可能搞砸了什么?如果这些信息有帮助,我还创建了一个新的 anaconda 环境来运行 Python3。

Ste*_*itt 20

您需要告诉scp您正在复制到远程,使用:和(可选)目标上的路径:

scp /path/to/local/file myusername@servername.com:/path/to/remote
Run Code Online (Sandbox Code Playgroud)

如果您只是指定:它将使用默认路径,可能是myusername的主目录servername.com

scp /path/to/local/file myusername@servername.com:
Run Code Online (Sandbox Code Playgroud)

(感谢斯蒂芬·哈里斯指出的是,远程路径是可选的。)

  • 你通常不需要远程路径,但你_确实_需要`:`。 (5认同)

Ste*_*ris 13

因为scp可用于将文件复制服务器,或者服务器中程序使用 的存在:来确定以哪种方式发送。没有 a:就没有主机名,因此它假定两个文件都是本地的。

所以

scp x a@b
Run Code Online (Sandbox Code Playgroud)

x和 都a@b视为本地文件。

不需要指定目标路径,但确实需要:

scp x a@b:
Run Code Online (Sandbox Code Playgroud)

如果没有指定路径,那么它将使用默认目录(通常是 remote $HOME),就像你指定的一样a@b:.