Linux下的scp拷贝命令详解
相同Linux系统中对⽂件复制拷贝可以⽤CP命令:
cp [options] source dest
cp [options] source… directory
说明:将⼀个档案拷贝⾄另⼀档案,或将数个档案拷贝⾄另⼀⽬录。
-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有⽬录名,则将⽬录下之档案亦皆依序拷贝⾄⽬的地。
-f 若⽬的地已经有相同档名的档案存在,则在复制前先予以删除再⾏复制。
不同的Linux之间copy⽂件常⽤有3种⽅法:
第⼀种就是ftp,也就是其中⼀台Linux安装ftp Server,这样可以另外⼀台使⽤ftp的client程序来进⾏⽂件的copy。
第⼆种⽅法就是采⽤samba服务,类似Windows⽂件copy 的⽅式来操作,⽐较简洁⽅便。
第三种就是利⽤scp命令来进⾏⽂件复制。
scp是有Security的⽂件copy,基于ssh登录。操作起来⽐较⽅便,⽐如要把当前⼀个⽂件copy到远程另外⼀台主机上
从 本地 复制到 远程(都是Linux系统时)
命令格式:
scp -r local_file remote_username@remote_ip:remote_folder
或者
scp -r local_file remote_username@hostname:remote_folder (这⾥使⽤hostname,是因为提前配置了hosts映射)
或者
scp -r local_file remote_username@remote_ip:remote_filecp复制文件到指定目录下
或者
scp -r local_file remote_ip:remote_folder
或者
scp -r local_file remote_ip:remote_file
注:-r 是递归的意思,相当于把⽂件⽬录包括⾥⾯的内容都递归复制到⽬标机器
如果没有配置ssh⽆密登录会在输⼊复制命令回车后要去输⼊远程机器的⽤户登录密码
从远程机器复制到本地当前操作的机器(跟上⾯操作反过来)remote_ip同样可以换成hostname,条件也是提前配置了hosts映射
如:scp -r remote_username@remote_ip:remote_file ./
注:./的意思是当前所在⽬录,即正在操作的当前机器⽬录位置,也可以写成具体路径:
scp -r remote_username@remote_ip:remote_file local_username@hostname:local_folder
这⾥的local_username和local_folder是指正在操作的机器,可能是实体物理机,也可能是虚拟机,也可能是远程机器(正在输⼊要执⾏命令的机器)
从本机操作远程机器,将远程机器⽂件复制到另⼀台远程机器(三台机器)
scp -r remote_username1@remote_ip1:remote_file1 username2@remote_ip2:remote_file2
注:
remote_file1需要复制的⽂件既可以是⽂本也可以是⽬录,⽽remote_file2是⽤来存放remote_file1的⽬录(位置)
remote_ip可以换做hostname,前提是远程机器上做了hosts映射,把它⾃⼰的ip映射为⾃⼰的hostname
如:scp -r atguigu@hadoop103:/opt/ atguigu@hadoop104:/opt/software(如果没有配置ssh⽆秘登录,会依次要求输⼊主机hadoop103和主机hadoop104的⽤户密码的)
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;
相⽐于CP命令,主要就是在source跟dest之前加上remote_username@remote_ip:,通过加的位置的不同区分出到底从远程到本地还是本地到远程
可能有⽤的⼏个参数 :
-v 和⼤多数 linux 命令中的 -v 意思⼀样 , ⽤来显⽰进度 . 可以⽤来查看连接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-P 选择端⼝ . 注意 -p 已经被 rcp 使⽤ .
-4 强⾏使⽤ IPV4 地址 .
-6 强⾏使⽤ IPV6 地址 .

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。