Linux之scp命令
SCP(Secure Copy)
Linux中的scp命令是用来进行远程文件拷贝的,数据传输使用ssh,并且和ssh使用相同的认证方式,提供相同的安全保证。这是一个非常方便有用的命令,在两台服务器之间直接传送文件,仅仅用 一个scp命令就完全解决了。scp在需要进行验证时会要求你输入对方的密码或口令。
基本命令语法
从本地复制到远程:scp [可选参数] 本地用户名@IP地址:本地路径 远程用户名@IP地址:远程路径
从远程复制到本地:scp [可选参数] 远程用户名@IP地址:远程路径 本地用户名@IP地址:本地路径
- [本地用户名@IP地址:]这一项可以不输入。
- 如果不输入[远程用户名@],那么命令执行后会要求用户输入。
- 命令执行后可能需要输入远程用户的密码。通常第一次传输时需要输入密码,系统重启后也会视为第一次传输。
- 可选参数 :
-v 和大多数linux命令中的-v意思一样, 用来显示命令执行过程中的具体信息,可以用来查看连接、认证或是配置错误。
-C 启用压缩选项。
-P 选择端口,注意-p已经被rcp使用。
-4 强行使用IPV4地址。
-6 强行使用IPV6地址。
-r 用于传送目录时,递归传送子目录与子文件。
举个栗子
从本地复制到远程
- 复制文件
- 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
第1、2个指定了远程用户名:第1个指定了远程目录名,即将本地文件复制到远程目录下,文件名字不变;第2个指定了远程文件名,即将本地文件复制并重命名成远程文件。
第3、4个没有指定用户名,命令执行后需要输入用户名:第3个指定了远程目录名,情况同上;第3个指定了远程文件名,情况同上。
- 例子
- scp /home/dir/1.mp3 root@192.168.1.110:/home/root/others
- scp /home/dir/1.mp3 root@192.168.1.110:/home/root/others/001.mp3
- scp /home/dir/1.mp3 192.168.1.110:/home/root/others
- scp /home/dir/1.mp3 192.168.1.110:/home/root/others/001.mp3
- 复制目录:
- scp -r local_folder remote_username@remote_ip:remote_folder
- scp -r local_folder remote_ip:remote_folder
第1个指定了用户名:将本地目录递归复制到远程目录下。
第2个没有指定用户名,命令执行后需要输入用户名:将本地目录递归复制到远程目录下。
- 例子
- scp -r /home/dir root@192.168.1.110:/home/root/others/
- scp -r /home/dir 192.168.1.110:/home/root/others/
从远程复制到本地
只要将“从本地复制到远程”的命令中的本地与远程信息调换位置即可。
- 例子
- scp root@192.168.1.110:/home/root/others /home
- scp -r 192.168.1.110:/home/root/others /home