如何使用scp将文件夹从远程主机复制到本地主机?
我使用ssh登录到我的服务器。然后,我想将远程文件夹foo复制到local/home/user/Desktop。
我如何做到这一点?
如何使用scp将文件夹从远程主机复制到本地主机?
我使用ssh登录到我的服务器。然后,我想将远程文件夹foo复制到local/home/user/Desktop。
我如何做到这一点?
当前回答
如果您有一个地狱般的文件要从远程位置下载,如果您不太关心安全性,请尝试将scp默认加密(三重DES)更改为类似“blowfish”的格式。
这将大大减少文件复制时间。
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
其他回答
我不知道为什么,但我必须在源服务器指令之前使用本地文件夹。让它发挥作用
scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/
问题是如何使用scp命令将文件夹从远程复制到本地。
$scp-ruserRemote@remoteIp:/path/remoteDir/path/localDir
但这里有一个更好的方法来使用sftp-SSH文件传输协议(也称为安全文件传输协议,或sftp)是一种网络协议,通过任何可靠的数据流提供文件访问、文件传输和文件管理。(维基百科)。
美元/平方英尺user_remote@remote_ip
sftp>cd/path/to/remoteDir
sftp>获取-r remoteDir
正在将/path/to/remoteDir提取到localDir 100%398 0.4KB/s 00:00
有关sftp命令的帮助,只需键入help或?。
要使用scp的全部功能,您需要执行以下步骤:
公钥授权创建SSH别名
然后,例如,如果您有这个~/.ssh/config:
Host test
User testuser
HostName test-site.example
Port 22022
Host prod
User produser
HostName production-site.example
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文件名选项卡完成
对于Windows操作系统,我们使用了此命令。
pscp -r -P 22 hostname@IP:/path/to/Downloads ./
如果您有一个地狱般的文件要从远程位置下载,如果您不太关心安全性,请尝试将scp默认加密(三重DES)更改为类似“blowfish”的格式。
这将大大减少文件复制时间。
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/