阅 读 文 章

关于cp -pr复制整个目录的局限性和正确的复制目录的方法

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(nanaskylead) | 时间:2007-05-27 | 浏览:人次 ]


很多人都认为cp -pr可以在不改变权限的基础上复制整个目录,但事实上,这是错误的。cp -pr有一个致命的缺点:不能复制联接。
我们可以做一个试验,假设一个叫abc的用户进行如下操作
引用:
mkdir /tmp/a
mkdir /tmp/b
mkdir /tmp/c
ln -s /tmp/a /tmp/b/a


然后我们su 成root
引用:cp -pr /tmp/b /tmp/c

将/tmp/b目录完全复制到/tmp/c下去
当我们"ls -al /tmp/c/b"的时候,猜想一下"ls -al /tmp/c/b"下的结果是什么?你也许会认为应该是引用:
drwxr-xr-x   3 abc   abc        238 Dec 14 10:31 .
drwxrwxrwt  10 root     sys          898 Dec 14 10:32 ..
lrwxrwxrwx   1 abc   abc          8 Dec 14 10:31 a ->; /tmp/a


实际上却是引用:drwxr-xr-x   3 abc   abc        238 Dec 14 10:31 .
drwxrwxrwt  10 root     sys          898 Dec 14 10:32 ..
lrwxrwxrwx   1 abc   abc          8 Dec 14 10:31 a


虽然用户的权限没有被改变,但是,联接被复制成了一个文件,而失去了联接的目标。



 nanaskylead 回复于:2003-12-14 11:43:29

更好的方法是使用cpio,除了dd之外最安全完善的复制方法了,大家可以去试试看:
find . |cpio -pdmu /tmp 
将当前目录以及其下的子目录copy至/tmp目录下,原来的目录和文件属性不变。


 iricyan 回复于:2003-12-14 12:04:35

cp -pr有一个致命的缺点:不能复制联接。

我用tar cvf - xxx|(cd /xyz;tar xvf -)


 nanaskylead 回复于:2003-12-14 12:39:48

是啊,是啊。tar也可以,不过速度方面就不敢恭维了。。。。。。
:),呵呵,谢谢iricyan捧场。


 milan 回复于:2003-12-14 15:09:24

收到,以后一定注意


 iricyan 回复于:2003-12-14 23:15:15

引用:原帖由 "nanaskylead" 发表:
是啊,是啊。tar也可以,不过速度方面就不敢恭维了。。。。。。
:),呵呵,谢谢iricyan捧场。


少了两个字,谢谢捧场 :em18: 灌水..



论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 复制 目录 局限性 正确 方法 整个 关于 回复 可以 一个

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.