Linux 复制命令cp详解

cp 复制文件和目录的 cp

NAME

       cp - copy files and directories

SYNOPSIS

       cp [OPTION]... [-T] SOURCE DEST

       cp [OPTION]... SOURCE... DIRECTORY

       cp [OPTION]... -t DIRECTORY SOURCE...

       cp SRC DEST :

 

SRC 是文件:

  如果目标不存在

    新建DEST,并将SRC中的内容填充至DEST中

  如果目标存在

    如果DEST是文件,将SRC中的内容覆盖至DEST中

    如果DEST是目录,在DEST下新建与原文件同名的文件,并将SRC中的内容填充至新文件中


cp SRC... DEST 

   SRC...:多个文件 DEST必须存在,且为目录,其它情形均会出错; 


cp SRC DEST 

  SRC是目录:此时使用选项:-r 

   如果DEST不存在:则创建指定目录,复制SRC目录中所 有文件至DEST中; 

   如果DEST存在: 

    如果DEST是文件:报错 

    如果DEST是目录:在DEST下新建与原目录同名的目录, 并将SRC中内容复制至新目录中


         ╲ 目标文件

  源文件 ╲

不存在   存在且为文件 

 存在且为目录

一个文件

新建DEST,并 将SRC中内容填 充至DEST中

将SRC中的内容覆 盖至DEST中 

注意数据丢失风险! 建议用 –i 选项

 在DEST下新建与原 文件同名的文件, 并将SRC中内容填 充至新文件中 

多个文件 报错  报错  在DEST下新建与原 文件同名的文件, 并将原文件内容复 制进新文件中 

目录 

须使用-r选项

创建指定DEST 同名目录,复制 SRC目录中所有 文件至DEST下

报错 

在DEST下新建与原 目录同名的目录, 并将SRC中内容复 制至新目录中


cp常用的选项:

-i :交互式

-r ,-R:递归复制目录及内部所有内容

-a :归档,相当于 -dR --preserv=all

-d :same as --no-dereference --preserve=links 不复制原文件,只复制链接名 

--preserve[=ATTR_LIST]

        preserve the specified attributes (default: mode,ownership,timestamps),

        if possible additional attributes: context, links, xattr, all

       保存指定的属性(默认值:模式、所有权、时间戳)可能的附加属性:上下文,链接,xattr,所有

-p :same as --preserve=mode,ownership,timestamps 保护 模式,权限、时间戳

-v :显示操作过程信息

-f :--force 强制


比如:-pv 参数

blob.png

时间戳:

blob.png


比如:--preserv命令和-p命令一样

blob.png

这个是保留所有信息

blob.png


更多命令请使用帮助命令自行查看



练习:


1、使用别名命令,将/etc/目录下所有文件, 备份到/testdir/下独立的新目录下,并要求新目录 格式为 backupYYYY-mm-dd ,备份过程可见 

    alias cpi="cp -arv /etc/ /testdir/backup`date +%F`"

2、先创建/testdir/rootdir目录,再复制/root所有 下文件到该目录内,并要求保留原有权限

    cp -rp /root/ /testdir/rootdir/


  • Linux 复制命令cp详解已关闭评论
  • 1,944 views
    A+
发布日期:2016年07月28日  所属分类:linux
标签: