如何使用scp将文件从服务器复制到客户端?

时间:2013-05-19 21:07:13

标签: terminal command-line-arguments scp

如何将文件从我正在远程访问的计算机传输回我目前所在的计算机?

任何人都可以帮助我吗?

这是我目前所知的语法,

scp(文件名)(我不知道该放什么):(我电脑上的位置)

4 个答案:

答案 0 :(得分:9)

scp实际上比乍一看更容易使用。

scp <from> <to>

<from><to>可以是本地的或远程的。

远程文件的格式为user@host:path_on_remote

本地文件只是简单的路径:/path/to/my/file.txt

如果您是手动执行此操作,您可能会发现通过在之前从localhost 运行以下内容,更轻松地不将文件复制回到您的办公室计算机登录到远程主机:

scp user@remotehost:/path/to/my/file/on/remote.txt /local/path/local.txt

如果你需要复制一个目录 - 正如已经提到的那样 - 你可以给scp -r选项。

登录到远程时,复制基本相同,但您需要在本地计算机上运行ssh,这可能需要在本地路由器上进行端口转发。我倾向于更容易将笔记本电脑上的scp调用到服务器而不是相反。

答案 1 :(得分:8)

如果您的计算机可以通过Internet访问,那么 - 这样的hacky - 应该可以正常工作;

scp (filename) `echo $SSH_CLIENT | awk '{print $1}'`:(location on my computer)

更简单的方法(始终有效)是从本地计算机上的新窗口执行scp ;

scp (remote computer):path/to/remote/file (location on my local computer)

remote computer与您通常使用的地址相同。

例如,如果文件位于名为remotecomputer.com的主目录的子目录中名为important的远程计算机上,并且该文件名为test.txt,则可以发出此命令在本地计算机上将其复制到本地计算机上的当前目录;

scp remotecomputer.com:important/test.txt .

答案 2 :(得分:1)

来自man pageman scp ...

scp file_on_local user@host.name:/path/to/file

如果您添加-r,则可以执行整个目录。

答案 3 :(得分:1)

使用pem文件(pem文件需要位于root中)

$ scp -i <pem.pem> <file_on_local> <user>@<remotehost>:/path/to/file

凭证

$ scp <file_on_local> <user>@<remotehost>:/path/to/file