我想使用移动定位在我的 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