如何让mlocate仅索引某些目录?
我想在我的Ubuntu服务器上使用mlocate ,但仅用于索引某些目录(例如/home
和/data
,但不包括/
下的所有内容)。 但是,mlocate的标准配置工作方式相反; 指定要删除的路径(使用PRUNE_PATHS
)。
有没有简单的方法来实现这一点,或任何类似的实用程序,将做我想要的? (注意:它应该保持像mlocate
这样的索引,所以find
是不可接受的,例如)谢谢。
您可以使用-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和两个databasepath的选项,如下所示:
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
编辑文件/etc/updatedb.conf
使用您不想搜索的目录设置PRUNEPATHS
PRUNEPATHS="/tmp /var/spool /media"
PRUNEPATHS
:以空格分隔的目录路径名列表,不应由updatedb扫描。 每个路径名必须完全采用locate所报告目录的forms。 默认情况下,不会跳过任何路径。
请注意,所有上述配置信息也可以通过命令行选项更改或更新到实用程序updatedb
。
我找到了你可以尝试的其他东西:
- 快速搜索 – “所以我的SearchTool使用不同的方式:它使用’ls’命令列出搜索文件夹的内容,然后对该输出进行搜索。这样搜索速度非常快(除了第一次必须进行搜索’ls’输出)。“
索引不太确定。
- 使用工具跟踪器gui
- 相当蹩脚的解决方案sudo找到“将你的搜索目录放在这里”> files.list grep’filename’files.list