如何使用scp将一个文件夹从远程复制到本地?

如何使用`scp'将一个文件夹从远程复制到本地主机?

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

如何实现这个目标?

对该问题的评论 (8)
解决办法
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/

来自 "man scp"(见在线手册)。

-r 递归复制整个目录

评论(11)

要充分使用scp的力量,你需要通过以下步骤。

1.公钥授权 2.2. 创建ssh别名

然后,例如,如果你有这个~/.ssh/config

Host test
    User testuser
    HostName test-site.com
    Port 22022

Host prod
    User produser
    HostName production-site.com
    Port 22022

你就可以把自己从密码输入中解救出来,并简化scp的语法,像这样。

scp -r prod:/path/foo /home/user/Desktop   # copy to local
scp -r prod:/path/foo test:/tmp            # copy from remote prod to remote test

更重要的是,你将能够使用远程路径完成。

scp test:/var/log/  # press tab twice
Display all 151 possibilities? (y or n)

更新:

要启用远程bash-completion,你需要在主机上都有bash-shell,并且bash-completion正常工作。更多信息见相关问题。

如何在使用scp时启用远程路径的自动完成功能?
SCP文件名标签完成

评论(10)

要将所有的本地位置复制到远程位置(上传)。

scp -r /path/from/destination username@hostname:/path/to/destination

远程位置的所有内容复制到本地位置 (下载)

scp -r username@hostname:/path/from/destination /path/to/destination

自定义端口,其中xxxx自定义端口号。

 scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination

远程复制到本地的当前目录。

scp -r username@hostname:/path/from/file .

帮助:

  1. -r 循环复制所有目录和文件。
  2. 始终使用/的完整位置,通过pwd获得完整位置。

  3. scp将替换所有现有文件。

  4. hostname将是主机名或IP地址。

  5. 如果需要自定义端口(除了22端口),使用-P portnumber

  6. . (dot) - 表示当前的工作目录,所以请从服务器下载/复制并粘贴到这里。

注意:有时候自定义端口会因为防火墙不允许而无法使用,所以要确保自定义端口在防火墙中允许进出连接。

评论(8)

我经常使用的是:{{13961552}}。

scp -r username@IP:/path/to/server/source/folder/  .

. (点) : 意思是 "当前文件夹"。 所以从服务器上复制并粘贴到这里。

IP : 可以是125.55.41.311这样的IP地址,也可以是ns1.mysite.com这样的主机。

评论(1)

最好先在远程服务器上压缩目录。

tar czfP backup.tar.gz /path/to/catalog

其次,从远程下载。

scp user@your.server.example.com:/path/to/backup.tar.gz .

在最后,提取文件。

tar -xzvf backup.tar.gz
评论(2)

如果你有一个地狱的文件从远程位置下载,如果你不'不太关心安全,尝试改变scp默认加密(Triple-DES),像'blowfish'。

这将大大减少文件复制的时间。

scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
评论(1)

进入unity工具栏上的文件

[![在此输入图像描述][1]][1]

按Ctrl+l键,写上here_goes_your_user_name@192.168.10.123。

192.168.1.103是你要连接的主机。

下面是一个例子

[![在此输入图像描述][2]][2]

[1]: http://i.stack.imgur.com/ZD6gk.png [2]: http://i.stack.imgur.com/TFZ4B.png

评论(0)

典型的情况是:

scp -r -P port username@ip:/path-to-folder  .

用一个例子来解释。

scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .

其中:

port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
评论(1)

如果您遇到"太多验证失败",请指定您添加到severs ssh服务器的确切SSH密钥。

scp -r -i /path/to/local/key user@remote.tld:/path/to/folder /your/local/target/dir
评论(0)

问题是如何用scp命令把一个文件夹从远程复制到本地。

$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir

但这里有一个更好的方法,用sftp来做 - SSH文件传输协议(也是安全文件传输协议,或SFTP)是一个网络协议,提供文件访问,文件传输,和文件管理的任何可靠的数据流(维基百科)。

$ sftp user_remote@remote_ip

sftp&gt.cd /path/to/remoteDir。 cd /path/to/remoteDir`。

sftp> get -r remoteDir

将/path/to/remoteDir取到localDir 100% 398 0.4KB/s 00:00

关于sftp命令的帮助,只需输入help?

评论(0)

我不知道为什么,但我不得不在源服务器指令之前使用本地文件夹。 使其工作

scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/
评论(1)