免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: flw2
打印 上一主题 下一主题

关于刚才那个删除目录的帖子 [复制链接]

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
1 [报告]
发表于 2007-09-26 16:43 |显示全部楼层
原帖由 oyd_admin 于 2007-9-26 15:09 发表
难道文件系统的设计,一定要先删除子目录,父目录才能删除吗?

他们都以为我在问为什么递归删除的功能不放在内核中,实际上我在问为什么要递归删除,我不认为这两个是同一种问题。



不递归删除,还能怎样删除啊?除非你的文件逻辑结构不是树

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
2 [报告]
发表于 2007-09-27 11:33 |显示全部楼层
原帖由 oyd_admin 于 2007-9-27 10:53 发表
我有一个奇想,既保持对通用文件系统的兼容,又能在O(1)时间复杂度删除一棵目录树,不知道行不行的通:
我们知道mount是可以把一个设备挂到一个文件系统中,umount操作就是O(1)的复杂度。
如果我们能随时把一个普通文件虚拟成一个存储设备的话,这个设备再mount到文件系统中,那么不管随后建立了多少级子目录,全删除都是O(1)的复杂度了。
理论上来说,实现把普通文件虚拟成设备应该不难,直接写在内核中或者做成驱动程序。
在虚拟设备上的读写效率问题,我觉得只要剩余磁盘空间还充足的话,就不会差真实设备太多。



奇想完全不具有可行性。

"随时把一个普通文件虚拟成一个存储设备,这个设备再mount到文件系统中"。这个不用你自己实现,kernel早实现了,见loopback

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
3 [报告]
发表于 2007-09-27 15:31 |显示全部楼层
sys_mount时,指定参数为MS_BIND,则执行loopback操作。

就是你说的“把目录文件虚拟为一个存储设备”,然后把以这个目录文件为根的文件树,mount到任何一个挂载点上。

但是这完全达不到你说的效果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP