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  用于传送目录时,递归传送子目录与子文件。


举个栗子

从本地复制到远程

  • 复制文件
  1. scp local_file remote_username@remote_ip:remote_folder
  2. scp local_file remote_username@remote_ip:remote_file
  3. scp local_file remote_ip:remote_folder
  4. scp local_file remote_ip:remote_file

第1、2个指定了远程用户名:第1个指定了远程目录名,即将本地文件复制到远程目录下,文件名字不变;第2个指定了远程文件名,即将本地文件复制并重命名成远程文件。 

第3、4个没有指定用户名,命令执行后需要输入用户名:第3个指定了远程目录名,情况同上;第3个指定了远程文件名,情况同上。

  • 例子
  1. scp /home/dir/1.mp3 root@192.168.1.110:/home/root/others
  2. scp /home/dir/1.mp3 root@192.168.1.110:/home/root/others/001.mp3
  3. scp /home/dir/1.mp3 192.168.1.110:/home/root/others
  4. scp /home/dir/1.mp3 192.168.1.110:/home/root/others/001.mp3
  • 复制目录:
  1. scp -r local_folder remote_username@remote_ip:remote_folder
  2. scp -r local_folder remote_ip:remote_folder

第1个指定了用户名:将本地目录递归复制到远程目录下。

第2个没有指定用户名,命令执行后需要输入用户名:将本地目录递归复制到远程目录下。

  • 例子
  1. scp -r /home/dir root@192.168.1.110:/home/root/others/
  2. scp -r /home/dir 192.168.1.110:/home/root/others/

从远程复制到本地

  只要将“从本地复制到远程”的命令中的本地与远程信息调换位置即可。

  • 例子 
  1. scp root@192.168.1.110:/home/root/others /home
  2. scp -r 192.168.1.110:/home/root/others /home

 

posted @ 2013-04-12 13:06  最初的幸福ever  阅读(2735)  评论(0编辑  收藏  举报