Posted on 2008-10-13 14:50
Prayer 阅读(333)
评论(0) 编辑 收藏 引用 所属分类:
日常技巧
cp的功能很多,由于我们常常进行一些数据的复制,所以也会常常用到这个命令。一般来说,如果去复制别人的数据(当然,该文件必须要有read的权限),总是希望复制到的数据最后是我们自己的,所以,在默认条件中,cp的来源文件与目标文件的权限是不同的,目标文件的拥有者通常会是命令操作者本身。举例来说,范例二中,由于我是root身份,因此复制过来的文件拥有者与用户组就改变成为root所有了。
由于具有这个特性,在进行备份的时候,某些需要特别注意的特殊权限文件,例如密码文件(/etc/shadow)以及一些设置文件,就不能直接以cp来复制,而必须要加上 -a或者是 -p,这些可以完整复制文件权限的参数。另外,如果想要复制文件给其他用户,也必须要注意文件的权限(包含读、写、执行以及文件拥有者),否则,其他人还是无法对你给的文件进行修改。特别要注意。
上面的第4个范例最有趣,使用 -l及 -s都会建立所谓的连接文件(link file),但是这两种连接文件有不一样的显示。这是怎么一回事? -l就是所谓的硬连接(hard link), -s则是符号连接(symbolic link),笔者这里先不介绍,因为这涉及i-node的相关知识,我们还没有介绍到,下一章再讨论这个连接的问题。总之,由于cp有种种文件属性与权限,所以,在复制时,必须要清楚地了解到:
• 是否需要完整地保留来源文件的信息?
• 来源文件是否为符号连接文件(symbolic link file)?
• 来源文件是否为特殊的文件,例如FIFO、套接字等?
• 来源文件是否为目录?