如何scp文件夹从远程到本地?

我不知道是否有可能scp从远程文件夹到本地,但还是我留下没有其他选择。 我使用SSH登录到我的服务器,并从那里我想将文件夹foo复制到home/user/Desktop (我的本地)。 有没有任何命令可以做到这一点?


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

man scp

-r Recursively copy entire directories

要使用scp的全部功能,您需要完成以下步骤:

  • 公钥授权
  • 创建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完成,你需要在<source><target>主机上都有bash-shell,并且正常工作bash完成。 有关更多信息,请参阅相关问题

    如何在使用scp时为远程路径启用自动完成功能?
    SCP文件名选项卡完成


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

    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 .
    

    帮帮我:

  • -r递归地复制所有目录和文件
  • 始终使用/完整位置,通过pwd获取完整位置
  • scp将替换所有现有的文件
  • hostname名将是主机名或IP地址
  • 如果需要自定义端口(除了端口22),请使用-P portnumber
  • (点) - 它表示当前的工作目录,所以从服务器下载/复制并粘贴在这里。
  • 注意:由于端口在防火墙中不被允许,有时自定义端口将不起作用,因此请确保防火墙允许自定义端口进行传入和传出连接

    链接地址: http://www.djcxy.com/p/4377.html

    上一篇: How to scp a folder from remote to local?

    下一篇: 'echo' without newline in a shell script