zoukankan      html  css  js  c++  java
  • 每天一个Linux命令(7):文件目录操作命令——cp命令

    cp命令是用来复制文件或目录的,该命令是Linux中常用的命令之一。

    1、基本使用格式

    # cp [OPTION]... [-T] SOURCE DEST
    # cp [OPTION]... SOURCE... DIRECTORY
    # cp [OPTION]... -t DIRECTORY SOURCE...

    2、常用选项

    Options Function
    -i 交互式复制,即覆盖之前提醒用户确认
    -f 强制覆盖文件目标
    -d 复制符号链接文件本身,而非其指向的源文件
       -a    -dR --preserve=all, archive,用于实现归档
    -s 给源文件创建一个符号链接文件
    --preserve=

    复制源文件时保护源文件的一些属性,这些属性包括

    mode: 权限

    ownership: 时间戳

    timestamp: 时间戳

    context: 安全标签

    xattr: 扩展属性

    links: 符号链接

    all: 上述所有属性

    3、命令功能

      cp命令分为单源复制和多源复制,并且目标文件的不同,所实现的功能不同,下面具体来看下cp命令的功能:

    Source(L)/DEST(C) 文件 目录
    文件

    只能为单源复制,并且如果该目标文件存在时,则会覆盖目标文件;

    当目标文件不存在时,则事先创建此文件,并复制源文件的数据流至DEST中;

    可以为单源和多源复制。在复制的过程中则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流。
    目录 错误

    可以为单源和多源复制。

    当目标目录存在时,在复制的过程中则先在DEST目录下创建一个与源文件同名的目录,并复制其数据流。

    当目标目录不存在时,则事先创建此目录,并复制源文件的数据流至DEST中

    4、应用示例

    (1)单源复制

      a. 目标为文件时

    # cp /etc/yum.repos.d/CentOS-Base.repo Base.repo     该目标文件在当前工作路径下不存在

      在执行上面的命令时,当前工作路径下没有Base.repo文件,所以在复制的过程中会事先创建Base.repo文件,然后将源文件中的数据流存入目标文件中。

      当再次执行上面的复制命令是就会出现下面的情况:

      这是因为目标文件是一个已经存在的文件,在复制的过程会询问用户是否覆盖目标文件。

      b. 目标为目录时

    # cp /etc/fstab ./public/

      在当前工作目录下的public目录下,不存在和源文件同名的文件,所以在复制的过程中,因为没有给出目标文件名,所以系统会默认先创建一个和源文件同名的文件,然后将源文件的中数据流直接复制过来。

    (2)多源复制

      在多源复制中DEST只能为目录。

      a. 源为文件

    # cp ifconfg initial public/

      b. 源为目录

    # cp -r 11/ music/ public/

      当源为目录的时候,此时要使用-r参数递归的将源目录复制到目标目录下。当然在单源复制中,源也可以为目录,但目标必须为目录。

      c. 源为文件和目录

    # cp -r ifconfg initial public/ music/

      从上面可以看出,cp命令在使用的过程中,不管参数有多少,都会将最后一个参数作为DEST。

    (3)利用cp命令创建链接文件

    # cp -s /etc/fstab fstab.link

    总结

      cp命令在系统中是cp -i命令的别名,所以在目标文件存在时会出现交互信息。在BASH中使用cp命令会出现交互信息,但是在shell中使用cp命令不会出现交互信息,这一点一定要注意。

  • 相关阅读:
    amq笔记:记一个关于PooledConnectionFactory的问题
    ganglia笔记:rrd数据库
    ganglia笔记:rrds目录
    golang笔记:unsupported driver -> Scan pair: <nil> -> *string
    golang笔记:cookie
    golang笔记:net/smtp
    spring笔记
    Qt坑点汇总
    QT自定义控件系列(二) --- Loading加载动画控件
    Qt自定义控件系列(一) --- 圆形进度条
  • 原文地址:https://www.cnblogs.com/dabric/p/11116891.html
Copyright © 2011-2022 走看看