我该如何使用scp将远程文件夹复制到本地?

3386

我如何使用 scp 将远程文件夹复制到本地主机?

我使用 ssh 登录到我的服务器。
然后,我想将远程文件夹 foo 复制到本地路径 /home/user/Desktop

我应该如何操作?


105
OP的问题是在通过ssh连接到远程主机时是否可以将文件从远程主机复制到本地主机。我不确定为什么没有一个答案正确回答了他/她的问题。 - JeffDror
15
问题的前提是错误的。问题本意是,一旦登录到SSH,如何将文件从已登录机器移回到已登录的客户端。然而,SCP不知道也不能使用SSH连接。它会建立自己的连接。因此,简单的解决方法是在本地工作站上创建一个新的终端窗口,并运行SCP将文件从远程服务器传输到本地机器。例如,scp -i key user@remote:/remote-dir/remote-file /local-dir/local-file - jeffmcneill
1
使用 mc:按下 TAB 键,输入 cd sh://USER@HOST,使用 mc 快捷键,完成后输入 cd 退出。 - sjas
1
@sjas:在 mc 中,使用菜单上的 左/右 更容易,进入 Shell 链接,您可以在其中输入您在 ~/.ssh/config 中拥有的别名,例如 myhost: > 确定 - ccpizza
2
@jeffmcneill 是的,你说得对。但是你没有直接回答JeffDror,所以我猜大多数人没有意识到你在回答JeffDror的问题。 - Adam
14个回答

5

我不知道为什么,但是在使用源服务器指令之前,我必须使用本地文件夹才能使其正常工作。

scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/

1
假设用户拥有权限,您能否不使用 root@ 来执行绝对路径? - Jonathan

2

使用rsyncscp更好。

简单的一行代码:

rsync -aP myfiles/ root@10.14.33.129:server_dir/

a 用于递归复制,保留符号链接、特殊文件和设备文件、修改时间、组、所有者和权限。它比-r更常用,是推荐使用的标志。

P 显示进度

一般形式:

rsync -a ~/dir1 username@remote_host:destination_directory

使用root作为用户,并连接到特定的IP地址。
rsync -aP myfiles/ root@10.14.33.129:server_dir/

您可以参考DigitalOcean的指南来学习Rsync。

1
问题的前提是错误的。想法是,一旦登录到ssh,如何将文件从已登录的机器移回已登录的客户端。然而,scp不知道也不能使用ssh连接。它正在建立自己的连接。因此,简单的解决方案是在本地工作站上创建一个新的终端窗口,并运行scp将文件从远程服务器传输到本地机器。例如,scp -i key user@remote:/remote-dir/remote-file /local-dir/local-file。

0

对于 Windows 操作系统,我们使用了这个命令。

pscp -r -P 22 hostname@IP:/path/to/Downloads   ./

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接