一、cp
1、作用
主要是用于在同一台电脑上
,在不同的目录之间来回copy文件
2、语法
# 从源路径copy文件到目的路径
cp [OPTIONS] SOURCE DEST
# 将多个源文件copy到指定的目录(多个源文件用空格分隔)
cp [OPTIONS] SOURCE... DIRECTORY
参数详解:
(1)-a
相当于 -d、-p、-r 选项的集合,尽可能将源文件状态、权限等资料都照原装予以复制,并且是递归copy;
(2)-d
如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
(3)-i
询问,如果目标文件已经存在,则会询问是否覆盖;
(4)-l
把目标文件建立为源文件的硬链接文件,而不是复制源文件;
(5)-s
把目标文件建立为源文件的软链接文件,而不是复制源文件;
(6)-p
复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
(7)-r
表示递归copy,若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地;
(8)-f
表示force,若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制;
(9)-u
若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。
3、应用实例
可参考:https://blog.csdn.net/qq_34556414/article/details/78363202
二、scp
1、作用
主要是在不同的Linux系统之间来回copy文件
。
scp(secure copy的缩写)
是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。 scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。
当你服务器硬盘变为只读read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
2、语法
scp [参数] [原路径] [用户名@IP:] [目标路径]
参数详解:
(1)-1
:强制scp命令使用协议ssh1
(2)-2
:强制scp命令使用协议ssh2
(3)-4
:强制scp命令只使用IPv4寻址
(4)-6
:强制scp命令只使用IPv6寻址
(5)-B
:使用批处理模式(传输过程中不询问传输口令或短语)
(6)-C
:允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
(7)-p
:保留原文件的修改时间,访问时间和访问权限。
(8)-q
:不显示传输进度条。
(9)-r
:递归复制整个目录。
(10)-v
:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
(11)-c
:cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
(12)-F
:ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
(13)-i
:identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
(14)-l
:limit 限定用户所能使用的带宽,以Kbit/s为单位。
(15)-o
:ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
(16)-P
:port 注意是大写的P, port是指定数据传输用到的端口号
(17)-S
:program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
3、应用实例
(1)从远程复制文件到本地目录
[root@linux ~]# scp root@192.168.10.10:/opt/soft/rhel-server-7.3-x86_64.tar.gz /opt/soft/
(2)从远程复制目录到本地
[root@linux ~]# scp -r root@10.10.10.10:/opt/soft/mysql /opt/soft/
(3)上传本地文件到远程机器指定目录
[root@linux ~]# scp /opt/soft/rhel-server-7.3-x86_64.tar.gz root@192.168.10.10:/opt/soft/scptest
(4)上传本地目录到远程机器指定目录
[root@linux ~]# scp -r /opt/soft/mysql root@192.168.10.10:/opt/soft/scptest
或者使用
[root@linux ~]# scp -r /opt/soft/mysql/ root@192.168.10.10:/opt/soft/scptest
mysql后面不管带不带/,都可以同步mysql目录
(5)保留文件的最后修改时间,最后访问时间和权限模式
[root@linu ~]# scp -p /root/install.log root@192.168.10.10:/tmp