scp
在Linux中进行复制文件,大家可能第一个想到的命令就是cp。那如果在不同的Linux主机进行复制文件怎么办了?在Windows系统中比较简单,通过FTP、远程桌面、中介媒质、在线网盘等,总之方法会比较多。而在Linux常用的几种方法如下所示:
- 通过ftp:可通过在一台Linux主机中安装FTP Server,另一个台使用FTP Client登录进行文件夹复制
- 采用samba服务,类似于Windows中文件复制操作,简洁方便
- 如果你在Windows环境,可使用一些工具在Windows中中转一下,如xftp工具,使用也比较简单(xftp下载地址:https://www.netsarang.com/products/xfp_overview.html)
- 使用Linux自带的命令scp进行复制
scp全称为secure copy用于在不同Linux主机之间复制文件,与cp命令最大的区别在于cp仅能在同一Linux主机中不同目录进行复制文件。
基础语法
scp [本地路径+本地文件] [远程用户名@远程主机IP:远程目录]
或
scp [本地路径+本地文件] [远程主机IP:远程目录]
第一种方法指定了用户名,在执行命令复制前需要输入密码,
第二种方法没有指定用户名,在执行命令复制前需要输入用户名和密码
scp命令常用参数及其含义如下所示:
参数 | 含义 |
---|---|
-1 | 使用SSH协议版本1 |
-2 | 使用SSH协议版本2 |
-4 | 使用IPv4 |
-6 | 使用IPv6 |
-P | 指定远程主机的端口号,注意P是大写 |
-r | 以递归方式复制,常在复制文件夹时使用 |
-C | 使用压缩传输 |
-v | 以详细方式显示输出,可用来调试连接、验证和配置问题 |
示例
-
1、以下示例演示的是将本地/opt目录中的test文件夹复制到远程主机192.168.2.105的/opt目录中且以root用户进行登录,如下所示:
-
2、以下示例演示的是将本地目录/root中的文件node-v4.2.1-linux-x64.tar.gz复制到远程主机192.168.2.105的/opt/test目录中且以root用户进行登录,如下所示:
-
3、以下示例演示的是将远程主机192.168.2.105中/root目录中的文件filters.bpf复制到本地opt目录中,并指定以端口22进行复制传输。
对于以上的命令执行是否成功,我们可以登录远程主机使用ls命令查看,以验证是否复制成功。