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

时间:2012-07-03 05:17:58

标签: shell command-line copy scp

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

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

如何实现这一目标?

10 个答案:

答案 0 :(得分:4368)

scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/

来自man scp(参见online manual

  

-r递归复制整个目录

答案 1 :(得分:276)

要充分利用 scp ,您需要完成以下步骤:

  1. Public key authorisation
  2. Create ssh aliases
  3. 然后,例如,如果您有〜/ .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,您需要在<source><target>主机上安装bash-shell,并正确运行bash-completion。有关更多信息,请参阅相关问题:

    How to enable autocompletion for remote paths when using scp?
    SCP filename tab completion

答案 2 :(得分:176)

将所有内容从本地位置复制到远程位置(上传)

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. 获取完整位置
  4. scp将替换所有现有文件
  5. hostname将是主机名或IP地址
  6. 如果需要自定义端口(除了端口22),请使用-P portnumber
  7. 即可。 (点) - 它表示当前工作目录,因此从服务器下载/复制并仅粘贴此处。
  8. 注意:由于防火墙中不允许使用端口,自定义端口有时无效,因此请确保防火墙允许自定义端口进行传入和传出连接

答案 3 :(得分:46)

我一直使用的是:

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

即可。 (点):表示current folder。所以从服务器复制并粘贴到此处。

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

答案 4 :(得分:28)

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

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

其次,从远程下载:

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

最后,解压缩文件:

tar -xzvf backup.tar.gz

答案 5 :(得分:21)

如果您有一个可以从远程位置下载的文件,如果您不太关心安全性,请尝试将scp默认加密(Triple-DES)更改为类似&#39; blowfish& #39;

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

scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/

答案 6 :(得分:19)

转到统一工具栏上的文件

enter image description here

按Ctrl + l并写入here_goes_your_user_name@192.168.10.123

192.168.1.103是您要连接的主机。

这里有一个例子

enter image description here

答案 7 :(得分:17)

典型情况,

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

答案 8 :(得分:11)

如果您遇到&#34;身份验证失败太多&#34; ,请指定您已添加到服务器ssh服务器的确切SSH密钥:

scp -r -i /path/to/local/key user@remote.tld:/path/to/folder /your/local/target/dir

答案 9 :(得分:5)

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

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