linux命令:cp和scp

一、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 [email protected]:/opt/soft/rhel-server-7.3-x86_64.tar.gz /opt/soft/

(2)从远程复制目录到本地

[root@linux ~]# scp -r [email protected]:/opt/soft/mysql /opt/soft/

(3)上传本地文件到远程机器指定目录

[root@linux ~]# scp /opt/soft/rhel-server-7.3-x86_64.tar.gz [email protected]:/opt/soft/scptest

(4)上传本地目录到远程机器指定目录

[root@linux ~]# scp -r /opt/soft/mysql [email protected]:/opt/soft/scptest
或者使用
[root@linux ~]# scp -r /opt/soft/mysql/ [email protected]:/opt/soft/scptest
mysql后面不管带不带/,都可以同步mysql目录

(5)保留文件的最后修改时间,最后访问时间和权限模式

[root@linu ~]# scp -p /root/install.log [email protected]:/tmp  

猜你喜欢

转载自blog.csdn.net/qq_16268979/article/details/128298158