作者:YYCC77777 | 来源:互联网 | 2023-09-06 16:43
格式cp[选项]源文件目标文件选项:-a:相当于-dpr选项的集合-d:如果源文件为软链接(硬链接无效),复制出的目标文件也为软链接-i:询问,如果目标文件已经存在,则会询问是否
格式
cp [选项] 源文件 目标文件
选项:
-a: 相当于-dpr选项的集合
-d: 如果源文件为软链接(硬链接无效),复制出的目标文件也为软链接
-i: 询问,如果目标文件已经存在,则会询问是否覆盖
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件
-s: 把目标文件建立为源文件的软链接文件,而不是复制源文件
-p: 复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
-r: 递归复制,用于复制目录
例1:基本用法
[root@VM-0-17-centos home]# cp aaa.txt /tmp/
#不改名复制
[root@VM-0-17-centos home]# cp aaa.txt /tmp/abc.txt
#改名复制
[root@VM-0-17-centos home]# cp aaa.txt /tmp/abc.txt
cp:是否覆盖"/tmp/abc.txt"? y
#默认执行cp -i
复制目录
需要加-r参数
例2:复制软链接属性
[root@VM-0-17-centos home]# touch lianxi
[root@VM-0-17-centos home]# ln -s /home/lianxi /tmp/lianxi_h
#建立软链接文件/tmp/lianxi_h
[root@VM-0-17-centos home]# ll /tmp/lianxi_h
lrwxrwxrwx 1 root root 12 6月 2 21:50 /tmp/lianxi_h -> /home/lianxi
#接下来源文件就是软链接文件
[root@VM-0-17-centos home]# cd /tmp/
[root@VM-0-17-centos tmp]# cp /tmp/lianxi_h /tmp/lianxi_h1
#复制软链接文件,但是不加'-d'选项
[root@VM-0-17-centos tmp]# cp -d /tmp/lianxi_h /tmp/lianxi_h2
#复制软链接文件,加入'-d'选项
[root@VM-0-17-centos tmp]# ll /tmp/lianxi_h1 /tmp/lianxi_h2
-rw-r--r-- 1 root root 0 6月 2 21:51 /tmp/lianxi_h1
#不加'-d'复制的是软链接的源文件,而不是软链接文件
lrwxrwxrwx 1 root root 12 6月 2 21:51 /tmp/lianxi_h2 -> /home/lianxi
#加入了'-d'选项,则会复制软链接文件
例3:保留源文件属性复制
[root@VM-0-17-centos mlocate]# pwd
/var/lib/mlocate
[root@VM-0-17-centos mlocate]# cp mlocate.db /tmp/
[root@VM-0-17-centos mlocate]# ll mlocate.db
-rw-r----- 1 root slocate 3044985 6月 6 03:26 mlocate.db
#注意源文件的时间和所属组
[root@VM-0-17-centos mlocate]# ll /tmp/mlocate.db
-rw-r----- 1 root root 3044985 6月 6 19:32 /tmp/mlocate.db
#由于复制命令由root用户执行,所以目标文件的所属组变为了root,而且时间也变成了复制命令的执行时间
使用-p参数可以保留源文件的属性,包括所有者、所属组和时间。当然-a相当于-dpr也更方便
[root@VM-0-17-centos mlocate]# cp -a mlocate.db /tmp/mlocate__2.db
#使用-a选项
[root@VM-0-17-centos mlocate]# ll mlocate.db /tmp/mlocate__2.db
-rw-r----- 1 root slocate 3044985 6月 6 03:26 mlocate.db
-rw-r----- 1 root slocate 3044985 6月 6 03:26 /tmp/mlocate__2.db
#源文件和目标文件的所有属性都一致,包括时间