Linux scp命令
1. scp 功能
scp 就是 secure copy
一个在linux下基于 ssh 登陆用来进行远程拷贝文件和目录的命令。
2. 语法和参数
scp [可选参数] file_source file_target
-p:保留原文件的修改时间,访问时间和访问权限。
-r: 递归复制整个目录。
-v:详细方式显示输出。
-P port:注意是大写的P, port是指定数据传输用到的端口号
3. 文件复制
3.1 从本地复制到远程
环境:
我有两台Centos机器,本地192.168.1.1;远程192.168.1.2。
现在在将本地192.168.1.1上的一个文件复制到远程192.168.1.2。
3.1.1 应用实例
- scp /home/hani.txt root@192.168.1.2:/home/
- scp /home/hani.txt root@192.168.1.2:/home/hani2.txt
- scp /home/hani.txt 192.168.1.2:/home/
- scp /home/hani.txt 192.168.1.2:/home/hani2.txt
注意: 这里 root 根据你的主机名字修改
3.1.2 解释
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
3.1.3 命令格式
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
scp local_file remote_ip:remote_folder
scp local_file remote_ip:remote_file
注意: 这里 root 根据你的主机名字修改
3.2 从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可
3.2.1 应用实例
scp root@192.168.1.2:/home/hani2.txt /home/
scp 192.168.1.2:/home/hani2.txt /home/hani.txt
上面的命令复制远程192.168.1.2 home目录下 hani2.txt 到本地机器 home目录下
4. 目录复制
4.1 从本地复制目录到远程
4.1.1 应用实例
scp -r /home/ root@192.168.1.2:/home/
scp -r /home/ 192.168.1.2:/home/
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
上面命令将本地 home 目录复制到远程 home 目录下
4.2 从远程复制目录到本地
4.2.1 应用实例
scp -r root@192.168.1.2:/home/ /home/
scp -r 192.168.1.2:/home/ /home/
5.端口复制
如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号。
- 命令格式如下:
#scp 命令使用端口号 1234
scp -P 1234 root@192.168.1.2:/home/hani2.txt /home/
6. 说明
使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。