scp命令是英文词组“secure copy”的缩写,其功能是基于SSH协议的跨主机拷贝文件。
scp命令可以在多台Linux系统之间复制文件或目录 ,有些类似于cp命令的功能,但复制的范围却不是主机本地,而是从网络上的一台主机复制另一台主机。
由于基于SSH协议,复制操作的全部数据都是加密的,因此会比HTTP和FTP更加安全。
scp语法格式如下
scp [选项] 文件
常用选项如下:
选项 | 作用 |
-4 | 使用ipv4 |
-6 | 使用ipv6 |
-B | 以批处理模式运行 |
-C | 使用压缩 |
-F | 指定ssh配置文件 |
-l | 指定宽带限制 |
-o | 指定使用的ssh选项 |
-P | 大写P,指定远程主机的端口号 |
-p | 小写p,保留文件的修改时间,访问时间和权限模式 |
-q | 不显示复制进度 |
-r | 以递归方式复制 |
实例演示
1、将某个本地文件复制到远程主机的指定目录中,并重命名该目标文件
#将当前目录中的anaconda-ks.cfg复制到远程主机的/root目录下,并重命名为ks.cfg
[root@myEuler ~]# scp anaconda-ks.cfg [email protected]:/root/ks.cfg
2、将远程主机中的某个文件下载到本地zhangsan的家目录中
[root@myEuler ~]# scp [email protected]:/root/ks.cfg ~zhangsan
3、将某个本地目录复制到远程主机的指定目录中
[root@myEuler ~]# scp -r dir1/ [email protected]:/root
4、将远程主机中的某个目录下载到本地指定目录中
[root@myEuler ~]# scp -r [email protected]:/root/dir1 /opt
5、将某个本地文件复制到远程主机的指定目录中,要求保留文件的原始权限等信息。
[root@myEuler ~]# scp -p anaconda-ks.cfg [email protected]:/opt/
#比对源、目文件属性信息
[root@myEuler ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1045 11月 22 16:50 anaconda-ks.cfg
[root@client ~]# ls -l /opt/anaconda-ks.cfg
-rw------- 1 root root 1045 11月 22 16:50 /opt/anaconda-ks.cfg