我如何让 mlocate 仅索引某些目录?

我如何让 mlocate 仅索引某些目录?

我想使用移动定位在我的 Ubuntu 服务器上,但只索引某些目录(例如/home/data,但不是下的所有内容/)。但是,mlocate 的标准配置以相反的方式工作;您指定要删除的路径(使用PRUNE_PATHS)。

有没有什么简单的方法可以实现这一点,或者有什么类似的实用程序可以满足我的要求?(注意:它应该维护一个类似的索引mlocate,所以find是不可接受的,例如)谢谢。

答案1

编辑文件/etc/updatedb.conf

设置PRUNEPATHS你不想搜索的目录

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS:不应由 updatedb 扫描的目录路径名的空格分隔列表。每个路径名必须与由locate报告的目录的格式完全一致。默认情况下,不会跳过任何路径。

请注意,所有上述配置信息也可以通过实用程序的命令行选项进行更改或更新updatedb

答案2

您可以使用 -U 选项(--database-root PATH)

updatedb -l 0 -U /home/user/music -o /home/user/databasefile

-o 写入输出文件

-l 0 表示你可以读取它,否则它只能由locate访问

然后你就可以像这样使用它:

locate -d /home/user/databasefile Dylan

-d 设置数据库路径

要将 mlocate 与多个根目录一起使用,只需创建两个数据库文件,然后使用带有两个数据库路径选项的locate,如下所示:

locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring

总结一下并更具体地回答这个问题:

updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan

答案3

我发现了其他你可以尝试的方法:

  1. 快速搜索- “所以我的 SearchTool 使用不同的方式:它使用‘ls’命令列出搜索文件夹的内容,然后对该输出进行搜索。这种方式的搜索速度非常快(除了第一次必须进行‘ls’输出)。”

不太确定索引。

  1. 使用工具跟踪器 GUI
  2. 相当蹩脚的解决方案 sudo find“将您的搜索目录放在这里”> files.list grep'filename' files.list

相关内容