linux之cp和scp的使用

cp

基本介绍

  cp主要用于同一台服务器上,目录和文件的复制

表达式

  cp [OPTIONS] SOURCE DEST --- 从源路径copy文件到目的路径

常用参数

  • -a same as -dpR 尽可能将源文件状态、权限等资料都照原装予以复制,并且是递归copy; 
  • -r 表示递归copy,若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地; 
  • -f 表示force,若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制;

基本使用

  • 将多个文件copy到某个目录下
  命令:cp test1.txt test2.txt test3dir/
  注意:test1dir目录必须要首先存在,否则即便加上-r参数也是不行的
  • 将源目录下的内容复制到目标目录下
  命令:cp -r test3dir/ test4dir/
  说明:当source中包含目录时,必须贷-r参数
  • 将一个文件内容复制到另一个文件
    命令:cp test1.txt test2.txt
   说明:如果test2.txt不存在,会先自动创建在赋值内容

scp

基本介绍

   在不同系统之间来回复制文件。既可以将本地文件复制到远程服务器上,也可以将远程服务器上的文件复制到本地。

表达式

   scp [参数] 文件 用户@IP:/目标路径

特点

  • 改变ssh加密算法,可以让速度更快;通常,越弱的加密算法,速度越快
  • 通常压缩会降低scp速度,但这与数据类型有很大关系,对压缩率非常高的数据启用压缩,可以加速
  • 压缩级别对传输效率影响很小
  • 用于完整性校验的不同MAC( message authentication code)算法,对性能约有10%-20%的影响。

常用参数

  • -1  强制scp命令使用协议ssh1  
  • -2  强制scp命令使用协议ssh2  
  • -4  强制scp命令只使用IPv4寻址  
  • -6  强制scp命令只使用IPv6寻址  
  • -B  使用批处理模式(传输过程中不询问传输口令或短语)  
  • -C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  
  • -p 保留原文件的修改时间,访问时间和访问权限。  
  • -q  不显示传输进度条。  
  • -r  递归复制整个目录。  
  • -v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   
  • -c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。   
  • -F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。  
  • -i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。    
  • -l limit  限定用户所能使用的带宽,以Kbit/s为单位。     
  • -o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   
  • -P port  注意是大写的P, port是指定数据传输用到的端口号   
  • -S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

基本使用

  • 复制文件,指定用户名,命令执行后需要再输入密码,目标的文件名和源文件名一致

  命令:scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music 

  • 复制文件,指定用户名,命令执行后需要再输入密码,内容复制到目标文件中

  命令:scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3 

  • 复制文件,不指定用户,命令执行后需要再输入用户名和密码

  命令:scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music

   命令:scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

  • 复制目录

  命令:scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/ 
     命令:scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

  • linux服务器和window服务器之间的文件传送

  命令:scp administrator@192.168.3.181:/d:/test/config.ips  /oracle

  说明:将windows上的文件复制到Linux服务器上.其实Linux服务器和windows服务器之间传输文件有很多工具可以使用,如:Winscp、filezilla等,无需用命令实现。

  注意:因为windows系统本身不支持ssh协议,所以,要想上面的命令成功执行,必须在windows客户端安装ssh for windows的客户端软件,比如winsshd,使windows系统支持ssh协议才行

注意:

  1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
  #scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
  2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

学习链接

原文地址:https://www.cnblogs.com/htyj/p/10282741.html