cp - copy files and directories

   (cp复制文件和目录)

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

     (选项)        (源目标)

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

    (选项)    (源)   (目录)

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

    (选项)           (源目录)

cp SRC DEST(设置目录 路径)

 

SRC是文件:

          如果目标不存在:新建DEST,并将SRC中内容填充至DEST中

         

          如果目标存在:

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

                               基于安全,建议使用cp命令-i选项

               如果DEST是目录:在DEST下新建与源文件同名的文件

                               并将SRC中内容填充至新文件中

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

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

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

                 如果DEST存在:报错 

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

wKiom1ecVhWBWspWAACh7cz4YiA584.png


 cp常用选项

~]# cp -i SRC DEST 交互式;覆盖; 如果SRC是一个文件 而DEST是个目录,则将SRC复制到DEST中 

                                   如过里面存在一个相同的SRC,会提示是否覆盖;

                                   文件到目录是可以的;目录到文件是行不通的。

wKiom1ecYE3TcmBIAABMtbrjGSA148.png



~]# cp -r DEST DEST(xxx/***)     复制目录到目录 递归复制目录及内部所有的内容; 目标文件路                                    径可以自定义名称相当于复制后改名

          SRC  DEST(xxx/***)     复制文件到目录 ;复制文件,

                                   到目标目录下可以自定义名称   通常用于目录

wKiom1ecY0OgjDsEAABsymx3g9g092.png



~]# cp -n SRC  DEST     如果存在就不覆盖  

wKiom1ecZdbg4DEbAABfxUucT_A459.png



cp --preserv[=ATTR_LIST]

            =mode 权限

            =ownership 属主属组

            =timestamp 时间戳

            =links      链接 

            =all        全部          

~]# cp --preserv=ownership ~makangbo/xmg /makangbo/

  (复制) (保留)=属主属组  普通用户/文件/ 目标位置/

wKiom1ecapbxHChRAADkS36LQlk987.png

文字概念:

(从普通用户的家目录复制出来的文件或者目录到达给出的目标位置并且保存了原先用户的属主属组)




~]# cp --preserv=timestamp,ownership ~makangbo/xmg /makangbo/

   (复制)  保留 = 时间戳 ,属主属组  普通用户/文件/目标位置/

wKioL1ecb5yyvZIWAADSqqcn71o341.png

文字概念:

(从普通用户的家目录复制出来的文件或者目录到达给出的目标位置并且保存了原先用户的属主属组和时间戳)   这个可以参考上面上个图片参数,区别在于时间戳有没有保留原来的



~]# cp -p ~makangbo/xmg /makangbo/   同等于--preserv=mode,ownership,timestamp

                                  同时保留(权限+属主属组+时间戳)

wKiom1eccgPyR62cAABqgwLPLdc046.png


~]# cp -v x1 m2   

(复制)(选项显示过程)(文件名称不是目录)(到达目标目录)

~]# cp -rv /目录/ /目录/

  (显示目录整个复制过程)  


wKioL1ecdD6QWGbrAACGPykGODo218.png


~]# cp -f xiaomge /makangbo

(两个同名的文件或者目录;但可能之前那个数据跟新的数据不一样;

         会提示覆盖(也可以说抹掉之前)原先的文件或者目录数据) 


 



练习

1:定义别名命令baketc,每天将/etc/目录下所有文件,备份到/testdir独立的子目录下,

   并要求子目录格式为backupYYYY-mm-dd,备份过程可见     

~]# alias baketc='cp -arv /etc/ /testdir/backup`date +%F`'

  (命令) (别名)=(交互式递归显示)(etc目录*文件)到(目标目录并且命名为name+time格式)

wKiom1ecXNqxVpg9AAAVkVJhL3g563.png

好了, 就这样坐等观看整个过程把 , 不过内容太多,就不上大图了





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

~]# cp --preserv=mode /root/ /testdir/rootdir -r

 (复制保存=权限)  将root目录下的所有文件带有权限性的复制到目标目录并且改名为rootdir 

                    -r是选项上面有说到,递归复制目录及内部所有的内容


wKiom1ecXhiDDgO_AAA4gJ--cyw277.png



                    《cp的常用方法就以上的举例   下一篇是命令别名alias》


           每个人都有私心,不过不要做损人利己的事情,换位思考;这叫人生

   不是我做的所有事情都要让别人满意,拼尽全力就可以,坚定自己的信念,总有一天我们会成功。




                                                                    作者:小马哥(xiaomag)