Ste*_*itt 29
locate
/ 的实现updatedb
通常使用根据其需求量身定制的特定数据库,而不是通用数据库引擎。您会发现每个实现都记录了那些特定的数据库;例如:
findutils
' 记录在 中locatedb(5)
,几乎只是一个文件列表(具有特定的压缩算法);mlocate
的记录在 中mlocate.db(5)
,也可以被视为目录和文件(带有元数据)的列表。jmu*_*lee 13
似乎是 C 结构的平面文件,使用 Gnu LibC OBSTACKS 宏写入/读取
查看来源
https://github.com/msekletar/mlocate/blob/master/src/updatedb.c#L720
https://github.com/msekletar/mlocate/blob/master/src/locate.c#L413
你可以得到类似的东西
find / -xdev -type f -not -path \*\.git\/\* | gzip -9 > /tmp/files.gz
zgrep file_i_want /tmp/files.gz
Run Code Online (Sandbox Code Playgroud)