基于Linux快速文件快速检索工具实现
2021-08-06任启红
卷宗 2021年20期
任启红
(三江学院 计算机科学与工程学院,江苏 南京 210012)
Linux系统自带的find命令、locate命令、xagrs命令可以用于对文件路径、文件内容进行检索,但速度比较慢从几分钟到几十分钟不等(具体视文件数量、硬盘类型、目录深度等等具体情形而定),如何快速进行文件路径和文件内容检索是一个比较重要的问题。本文提出基于内存建立索引、根据用户实时输入快速检索的计算方法。
1 概述
使用linux自带的命令find、locate,效率比较低下,需要花费数分钟至数十分钟才能完成检索文献[1]内存文件列表的建立和内存跳表的构建两个功能模块,这两种功能模块都是基于自定义的内存管理方法。先申请固定大小的内存块,里面包括32比特的位图、32个数据块,每一比特的位图依次对应一个数据块,这种方案为每条索引记录分配的内存都相同,比较耗费内存;文献[2]提出把文件系统内生成子目录散列槽,且通过唯一标识符标志每个子目录散列槽并在文件系统内快速接收文件的方法,把业务目录根据业务人员分别配置权限,不过这个比较适用于详细的某行业定制;文献[3]采用把索引存放到数据库进行管理,我们采用把目录、文件路径存放到内存进行检索,速度会更快。
2 快速检索方案及实现
我们采用C语言实现,工具名为Found,开发的系统分为如下几个步骤:
1)读取配置文件(里边有包含目录或排除目录),并解析需要包含的目录列表;
2)根据目录列表递归读取所有文件和所在目录,并存储到内存记为数组pAllFiles;……
登录APP查看全文
