Linux基础命令——cp简介

问世间情为何物,直教人生死相许

QQ拼音截图未命名21

  • 单源复制:cp[OPTION]… [-T] SOURCE(源,一个文件) DEST(目标)
    • 如果DEST不存在:则复制为两步,先创建此文件(或文件夹),并将源文件(或文件夹)里的数据填充到该文件(或文件夹)中
    • 图片2
    •  如果DEST存在:
      • 如果DEST是非目录文件,则覆盖目标文件,直接回车等于取消命令,需要输入“y”
      • 如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件
      • 图片2
  • 多源复制:cp[OPTION]… .. DIRECTORY;cp [OPTION]… -t DIRECTORY SOURCE…(少用)
    • 如果源是多个文件
      • DEST不存在或为文件:错误
      • 图片2
      • 如果DEST是目录文件:分别复制每一个文件至目标目录中,并保持原名
    •  如果源是目录(必须使用-r)
      • 目标不存在:
        • cp -r /game/sheng /root/sheng4,将/sheng复制到/root下并且改名为sheng4目录,/sheng4之前是没有的
      • 如果DEST存在:
        • 如果DEST是非目录文件,错误
        • 如果DEST是目录文件,在目标目录文件夹下新建与原目录同名的目录,并将SRC目录中的内容填充到新目录中
          • 注意:如果源目录名和目标目录中的有些子目录名相同,这些相同名字的目录中,两两会合并为一个目录并且数据为并集
          • 图片2
  • cp的选项:
    • -i:交互式复制,即覆盖之前提醒用户确认是否覆盖(在root用户下操作,cp别名成了cp -i,避免root误操作,普通用户没有别名)
    • -v:显示复制的过程(一般拷贝较大文件时)
    • -f:强制覆盖目标文件,当一个普通用户对目录拥有完全的控制权限(例如自己的家目录),可以对目录下其他用户的包括root的文件进行rm操作,和强制覆盖cp -f操作(强制覆盖实质上是先删除后复制文件)
    • 图片2
    • -r| -R:递归复制目录到目标
    • -a | –archive归档复制,用于备份,相当于 :-dR –preserve=all
    • -d:–no-dereference –preserv=links,在复制软连接的时候,名字是软连接的名字,数据则是真实文件的数据,此选项表示不复制原文件,只复制链接名
    • 图片2
    • –preserve=mode:权限 | timestamp:时间戳 | ownership:所属主组 | all:全部,在复制的时候文件的元数据的时间戳所属主组等都有可能发生变化,此选项能在复制的时候保留源文件的制定的属性
    • -p:等同–preserve=mode,ownership,timestamp
    • 注意:复制文件的时保留元数据与权限有关系,权限不够时是不能保留其元数据信息的
    • 图片2
    • 注意: 在复制的时候,cp -r /dir1/dir2/.*/dir3,这样会把dir1中的内容全部复制到dir3中,因为.*匹配到了..

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94805

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班