如何使用将文件夹从远程复制到本地主机scp
?
我ssh
用来登录服务器。
然后,我想将远程文件夹复制foo
到local /home/user/Desktop
。
我该如何实现?
如何使用将文件夹从远程复制到本地主机scp
?
我ssh
用来登录服务器。
然后,我想将远程文件夹复制foo
到local /home/user/Desktop
。
我该如何实现?
Answers:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
通过在foo的末尾不包括结尾的“ /”,您将移动目录本身(包括内容),而不是仅移动目录的内容。
从man scp
(请参阅在线手册)
-r递归复制整个目录
Desktop/foo
,否则将有Desktop/allcontentsofFooGohere
SCP似乎行事怪异,有时对我来说,做一件事情然后又
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
您在一起的@Toskan 应该以结尾Desktop/foo
。与scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
您一起将结束foo
in 的内容Desktop
以及foo
散落在其中的所有子目录Desktop
要使用scp的全部功能,您需要执行以下步骤:
然后,例如,如果您具有〜/ .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 -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地址-P portnumber
注意:有时由于防火墙不允许端口使用自定义端口,因此请确保防火墙允许传入和传出连接使用自定义端口
pwd
用于获取位置和使用位置
我一直使用的是:
scp -r username@IP:/path/to/server/source/folder/ .
。(点):表示current folder
。因此,请从服务器复制并仅粘贴到此处。
IP:可以是IP地址125.55.41.311
,也可以是主机ns1.mysite.com
。
.
当前目录!
最好先在远程服务器上压缩目录:
tar czfP backup.tar.gz /path/to/catalog
其次,从远程下载:
scp user@your.server.example.com:/path/to/backup.tar.gz .
最后,解压缩文件:
tar -xzvf backup.tar.gz
-C
标记为scp添加压缩,例如scp -C a@b:bigfile .
。
而且,如果您有一个文件要从远程位置下载,并且您不太在意安全性,请尝试将scp默认加密(Triple-DES)更改为“ blowfish”。
这将大大减少文件复制时间。
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
问题是如何使用scp
命令将文件夹从远程复制到本地。
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
但这是使用它的更好方法sftp
-SSH文件传输协议(也称为安全文件传输协议,即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
或?
。