cp的功能很多,除了单纯的复制之外,还可以建立链接档,比较两档案的新旧而给予更新,以及复制整个目录等功能。
下面以几个实用场景描述cp的参数
1.-i
cp ~/.bashrc /tmp/bashrc
cp -i ~/.bashrc /tmp/bashrc
上面连续两次复制.bashrc,第二次添加-i参数,其主要作用是询问是否覆盖
2.-a(本次操作基于root用户)
cp /var/log/wtmp /tmp
cp -a /var/log/wtmp /tmp/wtmp2
上面第一次复制产生的文件,档案的某些权限或属性发生了变化
加上-a这个属性,可以将档案的属性和权限全部复制过来
3.-r
cp /etc/ /tmp
cp -r /etc/ tmp
对于目录的复制,需要加-r 参数
使用-r参数可能会改变权限核属性,复制目录的时候也可以使用-a 参数
4.-s
cp -s /var/log/wtmp /tmp/wtmp_link
-s参数用于建立快捷方式
5.-l
cp -l /var/log/wtmp /tmp/wtmp_hlink
-l参数用于建立实体链接
实体链接与源文件没有差异,唯一的差异就是链接数目添加了
6.-u
cp -u /var/log/wtmp /tmp/
-u参数用于检查源文件与目标文件之间的差异性,当两者之间有差异的时候,才复制
7.-d
cp -d /tmp/wtmp_link wtmp_link1
cp /tmp/wtmp_link wtmp_link2
(-d)前者复制符号链接,后者复制文件本身
8.-a 参数附加说明
切换用户,使用asarja,非root
cp -a /var/log/wtmp /tmp
由于asarja不具备修改档案的相关属性的权限,所以此时即使加上-a,也没有任何作用。