Linux命令学习总结:cp命令

Linux命令学习总结:cp命令


命令简介:

     cp命令用来复制文件或目录。指令英文原义:copy,copy files and directories

     指令所在路径:/bin/cp

命令语法:

  • cp [OPTION]… [-T]   SOURCE   DEST

  • cp [OPTION]…   SOURCE…   DIRECTORY

  • cp [OPTION]… -t DIRECTORY   SOURCE…

命令参数:

参数 长参数 描述
-a 等同于-dR
-d 复制符号链接
-f – -force 强制复制
-i 交互式模式。覆盖目标文件之前先要进行询问
-n 不覆盖
-r/-R 处理指定目录以及子目录
-v – -verbose 显示命令执行的详细信息
– -help 显示命令在线帮助
– -version 显示命令版本信息

使用示例:

1. 选项-in 和 -ni 的区别

    cp -in /app/001.log /app/file.log 
    该命令,当file.log存在时,不会覆盖file.log,即file.log不会做任何的变化,且不会有任何提示信息;file.log不存在时,会创建file.log,并用001.log的内容进行填充。 
     cp -ni /app/001.log /app/file.log 
    该命令,当file.log存在时,会提示覆盖file.log,如果选择yes,就会覆盖文件的内容;file.log不存在时,会创建file.log,并用001.log的内容进行填充。 
     总结:-i 和 -n选项放在一起的时候,后面的选项会覆盖前面的选项。

2. cp的几种使用情况总结

    (1) SOURCE为文件,DEST不存在的话,创建DEST文件,复制SOURCE的内容过去,此时新创建的DEST文件的所有者是源。 
    几种情况:

命令 描述
cp /appa/a.txt /appb/b.txt b.txt 不存在,创建b.txt文件
cp /appa/a.txt /appb/b.sh b.sh 不存在,创建b.sh文件
cp /appa/a.txt /appb/abc abc不存在,创建abc文件,注意abc是文件

    (2) 目标文件存在,overwrite,覆盖是内容覆盖,目标文件的所有者和后缀等一些文件元数据不变,cp后的文件的名称为目标文件的名称,注意数据丢失风险,建议用-i选项 
     cp -i a.txt b.txt 
     cp -i a.txt bb.sh

    (3) 目标文件存在且为目录,在DEST目录下新建与原文件同名的文件,并将源文件中内容填充至新文件中 
     cp /appa/a.txt /appb/abc 
     abc此时存在且为目录

    (4) 源文件为多个文件,目标文件存在且为目录,在目标文件夹下新建与原 
文件同名的文件,并将原文件内容复制进新文件中,在此不再举例

    (5) 源文件为目录,目标文件不存在,此时,创建指定DEST同名目录,复制SRC目录中所有文件至DEST下,举例如下: 
    创建/testdir/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
    答案:cp -a /root    /testdir/rootdir 
    注意:rootdir这个目录不存在,而testdir存在

    (6) 源文件为目录,目标文件存在且为目录,在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中,举例: 
    /testdir/rootdir目录存在,复制/app/test目录本身到rootdir目录内 
    答案: cp -a /app/test    /testdir/rootdir

    (7) 源文件为目录,目标文件存在且为目录,且下面是有文件的,如何把源文件夹下面的文件拷贝到目标文件夹下面?举例: 
    /testdir/rootdir目录存在,且下面有文件和文件夹,复制/app/test目录下面的内容到rootdir目录内 
    答案: cp -a /app/test/*    /testdir/rootdir


原创文章,作者:woking,如若转载,请注明出处:http://www.178linux.com/82535

(1)
wokingwoking
上一篇 2017-07-23 22:26
下一篇 2017-07-23 23:31

相关推荐

  • 推荐-使用Ansible部署LAMP环境

    使用Ansible部署LAMP环境 使用Ansible部署LAMP环境 前言 实验环境 实验步骤 配置ssh公钥认证 安装ansible 配置host iventory 创建YAML文件 运行Ansible-Playbook并测试 总结 前言 这两天学习了Ansible, 在部署实验环境真的很好用, 今天向大家分享如何使用Ansible部署LAMP环境, 本…

    Linux干货 2016-04-10
  • vim功能及使用

    vim 简介:   vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。 文本编辑种类: 行编辑器: sed全屏编辑器:nano, vivim – Vi Improved 一、基本操作语法 vim [OPTION…

    Linux干货 2016-08-11
  • HA高可用集群学习笔记

    前言   什么是HA?HA做什么用的?   HA(High Available)是高可用集群,是保证业务不中断性的有效解决方案;通常HA集群部署在多个节点,正在提供服务的节点成为活动节点,没有提供服务的是非活动节点;当活动节点发生故障,非活动节点会转为活动节点,向外提供服务,以保证业务的连续性;这就是HA。 一、HA(High Avail…

    Linux干货 2015-06-30
  • 第十三周作业

    “1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; …

    Linux干货 2017-08-13
  • 运维学习笔记-看看别人家的Puppet代码

    这篇博客的目的是通过分析Forge上的Puppet模块来加深一些概念的理解,同时了解一些常用用法。 今天的例子是jfryman-nginx模块,它是原puppetlabs-nginx模块的升级版本,依赖3个Puppet公共模块:puppetlabs-apt,puppetlabs-stdlib和puppetlabs-concat。安装非常方便,puppet m…

    Linux干货 2016-06-23
  • 网络接口bonding的设置、网卡别名的设置

    网络接口bonding的设置、网卡别名的设置 网络接口bonding的设置 1.bonding的原理 Bonding就是将多块网卡绑定同一IP 地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP 地址是不可能的。通过bonding ,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC 地址。 2.Bonding 的工作模式 …

    Linux干货 2016-09-05