如何使用scp将文件夹从远程复制到本地主机?
scp
我使用ssh登录我的服务器。然后,我想复制远程文件夹foo到本地/home/user/Desktop。
ssh
foo
/home/user/Desktop
我如何实现这一点?
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
通过在foo末尾不包含尾随'/',您将复制目录本身(包括内容),而不仅仅是目录的内容。
从man scp(见在线手册)
man scp
-r递归复制整个目录
要使用scp的全部功率,您需要执行以下步骤:
然后,例如,如果您有此~/. ssh/config接口说明:
Host testUser testuserHostName test-site.examplePort 22022 Host prodUser produserHostName production-site.examplePort 22022
您将从密码输入中拯救自己并简化scp语法,如下所示:
scp -r prod:/path/foo /home/user/Desktop # copy to localscp -r prod:/path/foo test:/tmp # copy from remote prod to remote test
更重要的是,您将能够使用远程路径完成:
scp test:/var/log/ # press tab twiceDisplay all 151 possibilities? (y or n)
要启用远程bash完成,您需要在<source>和<target>主机上都有bash-shell,并正常工作bash完成。有关更多信息,请参阅相关问题:
<source>
<target>
使用scp时如何启用远程路径的自动完成?SCP文件名选项卡完成
最好先在远程服务器上压缩曲库:
tar czfP backup.tar.gz /path/to/catalog
其次,从远程下载:
scp user@your.server.example.com:/path/to/backup.tar.gz .
最后,提取文件:
tar -xzvf backup.tar.gz
我一直使用的是:
scp -r username@IP:/path/to/server/source/folder/ .
.(点):这意味着current folder。所以从服务器复制并粘贴在这里。
current folder
ip:可以是像125.55.41.311这样的IP地址,也可以是像ns1.mysite.example这样的主机。
125.55.41.311
ns1.mysite.example
如果您有一个地狱般的文件要从远程位置下载,如果您不太关心安全性,请尝试将scp默认加密(Triple-DES)更改为“河豚”之类的东西。
这将大大减少文件复制时间。
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
典型场景,
scp -r -P port username@ip:/path-to-folder .
用样本解释,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
在哪里,
port = 27000username = "abc" , remote server usernamepath-to-folder = tmp/hotel_dump. = current local directory
转到Unity工具栏上的文件
按Ctrl+l并写入here_goes_your_user_name@192.168.10.123
192.168.1.103是要连接的主机。
这里有一个例子
我不知道为什么,但我不得不在源服务器指令之前使用本地文件夹。使其工作
scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/
从本地位置复制到远程定位(上传)
scp -r /path/from/local username@hostname:/path/to/remote
复制所有从远程定位到本地位置(下载)
scp -r username@hostname:/path/from/remote /path/to/local
自定义端口,其中xxxx是自定义端口号
xxxx
scp -r -P xxxx username@hostname:/path/from/remote /path/to/local
从远程到本地复制当前目录
scp -r username@hostname:/path/from/remote .
帮助:
-r
/
pwd
hostname
-P PortNumber
备注:有时由于防火墙中不允许端口,自定义端口将无法工作,因此请确保防火墙中允许自定义端口用于传入和传出连接
问题是如何使用scp命令将文件夹从远程复制到本地。
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
但是这里有更好的方法来做到这一点sftp-SSH文件传输协议(也是安全文件传输协议,或SFTP)是一种网络协议,它提供文件访问,文件传输和文件管理任何可靠的数据流。
sftp
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
有关sftp命令的帮助,只需键入help或?。
help
?
如果您遇到“太多身份验证失败”,请指定您添加到serverssh服务器的确切SSH密钥:
scp -r -i /path/to/local/key user@remote.tld:/path/to/folder /your/local/target/dir
对于Windows OS,我们使用此命令。
pscp -r -P 22 hostname@IP:/path/to/Downloads ./
问题的前提是不正确的。想法是,一旦登录到ssh,如何将文件从登录机器移动回登录的客户端。然而,scp不知道也不能使用ssh连接。它正在建立自己的连接。所以简单的解决方案是在本地工作站上创建一个新的终端窗口,并运行scp将文件从远程服务器传输到本地机器。例如,scp-i键user@remote:/远程目录/远程文件 /local-dir/local-file