免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3334 | 回复: 6
打印 上一主题 下一主题

请问为什么不能直接删除一个非空的目录  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-26 13:54 |只看该作者 |倒序浏览
10可用积分
从逻辑角度来说,删除一棵树上的一个节点,并不要求必须先删除其所有子节点

可是历来流行的操作系统不论unix还是windows,无一例外的都不能直接删除非空目录的

请问这种设计的理由何在?
历史原因还是文件系统的某种局限还是物理存储的局限呢?
还是所有人都忽略了这一点,选择默默忍受呢?

论坛徽章:
0
2 [报告]
发表于 2007-09-26 13:57 |只看该作者
因为一个合格的程序员应该能够通过深度优先+广度优先算法轻易解决这个问题。

既然这个功能能够封装出来,就不应该重复提供这个功能而破坏接口的紧凑性。

[ 本帖最后由 JohnBull 于 2007-9-26 13:59 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-09-26 14:06 |只看该作者
你可能没有理解我的意思

我不是问为什么不提供一个接口来直接删除非空目录。

从你的回答,你是基于这样的认识:删除一个非空的目录是一个原子操作。

那么,我的问题实际上是问,为什么这个原子操作要有一个目录非空的限制条件呢?

论坛徽章:
0
4 [报告]
发表于 2007-09-26 14:11 |只看该作者
那么为什么要有呢?从OS角度看,没有是比有好的。
在用户层次上实现也很容易。rm -fr
一些功能,可以在用户,也可以在OS,要权衡放在那里好。

原帖由 oyd_admin 于 2007-9-26 14:06 发表
你可能没有理解我的意思

我不是问为什么不提供一个接口来直接删除非空目录。

从你的回答,你是基于这样的认识:删除一个非空的目录是一个原子操作。

那么,我的问题实际上是问,为什么这个原子操作要有 ...

论坛徽章:
0
5 [报告]
发表于 2007-09-26 14:16 |只看该作者
我是认为rm -fr太慢了
我希望rm -fr能和mv一样的快。
我想问,它为什么做不到和mv一样的快

论坛徽章:
0
6 [报告]
发表于 2007-09-26 14:20 |只看该作者
嫌慢是吗?升级硬件!
over!

论坛徽章:
0
7 [报告]
发表于 2007-09-26 14:33 |只看该作者
放到系统内就一定快吗?
不是的。对于外设的操作(硬盘文件),速度早已经不取决与功能代码在KERNEL还是在用户。因为平静问题是机械转动的速度小于小于CPU执行。

原帖由 oyd_admin 于 2007-9-26 14:16 发表
我是认为rm -fr太慢了
我希望rm -fr能和mv一样的快。
我想问,它为什么做不到和mv一样的快
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP