为何whereis没有出现locate返回的结果?

1. locate find 出来很多结果,  whereis find 只有下面的

find: /usr/bin/find /usr/bin/X11/find /usr/share/man/man1/find.1.gz

所以whereis关注binary,man,source file较多

2. locate bwengine.tra 会得到想要的结果, whereis bwengine.tra 什么结果也没有

3. whereis在ubuntu上弱势很多,最多查找在PATH里面的可执行文件,或者man路劲的文件。

4. locate使用的数据库文件在 /var/lib/mlocate/mlocate.db(当前我只看到这一个文件,5M大小了)

/etc/updatedb.conf 控制了locate的数据库的更新,centos 5.x 默认每天更新一次,所以可能看到旧的被删除的文件,也可能看不到最新创建的文件。

需要的话,可以手动执行 updatedb ,这样/etc/updatedb.conf会被参考用来更新locate的数据库。

5.   type -a updatedb

updatedb is /usr/bin/updatedb

6.  可以说locate的数据库保存了系统所有文件的信息.所以查询效率相当快。因此可以把他当做linux世界的everything了!唯一区别只是数据库更新时间了。

7. 下面的函数则可以当做linux世界的filelocatorpro了:

alias fr='func_frahk(){ cd "$ahk";ag -i "$@" *;};func_frahk $@'

使用ag,ack,grep查找指定目录及其子目录下文件内容符合用户输入的文件,mobaxterm下测试比filelocatorpro还要快。

8. locate 语法支持 -i 忽略大小写 , -r 正则表达式的匹配模式(所以终于知道我刚才使用通配符会没有结果的原因了,使用正则表达式啊!)

locate -r click.*log 可以返回结果了!

9. whereis 支持参数: -b binary file , -s source file , -m man file, -u other usual files

你可能感兴趣的:(为何whereis没有出现locate返回的结果?)