Linux之locate命令

说实话,这个定位用起来很有趣。
当我第一次在服务器上开始系统监控时,我主要用它来查找日志文件。
比如半夜突然接到报警,直接定位Access.log就可以快速定位到该文件,这比查找/-name access.log要快很多。

但是特别烦人的是,它依赖于数据库/var/lib/mlocate/mlocate.db。
我遇到过这样的情况:删除一个文本文件后,使用locate找不到它,我以为文件没有被删除。
后来发现数据库没有更新。
Linux 会自动运行 Updateb,但有时由于系统负载过高或 crontab 问题,更新可能会延迟。
这时候你应该手动sudo Updateb,运行完后再检查。

有趣的是速度定位功能。
它不像搜索那样遍历每个目录,而是直接搜索数据库。
我试图在1 0T硬盘上找到这些文件。
使用地理定位可以在几秒钟内获得结果,但搜索过程需要很长时间。
但这个数据库是一个权衡,并且不是实时更新的,因此新创建或最近删除的文件可能暂时找不到。

就配置而言,/etc/updatedb.conf实际上可以改变很多东西。
记得之前让一个同事调整更新频率,因为他的服务器硬盘很多,运行Updateb会消耗很多资源。
还有一个参数可以指定要搜索的目录。
例如,某些系统将临时文件放置在其他地方,如果不搜索它们,效率会更高。

使用时最好注意一下参数。
例如,如果您想查找当前目录中的所有文件,只需使用Locate即可。
它会自动添加路径前缀。
或者,如果您想查找/etc下所有以sh开头的文件,请找到/etc/.sh。
这种灵活性是研究无法比拟的。

我没有亲自测试过数据的准确性,但我的印象是数据库文件大小通常在几百MB到几GB之间,具体取决于系统的大小和文件更改的频率。
我记得一个系统管理员告诉我,他的数据库有3 GB,更新一次需要1 0分钟。
当然,大量数据会很慢,但它有效验证得很快。

总之,Locate是一个不错的工具,特别适合快速定位已知文件。
请记住,这取决于数据库,有时您必须手动更新。
我个人没有对此进行过严格的测试。
我记得数据是关于X的,但我建议你检查一下你的系统的状态。

linux whereis命令详解

whereis 用于查找文件路径。

要测试二进制文件,请使用 -b。
使用 -m 测试该人。
使用 -s 检查源代码。

快速并由数据库支持。

数据库已过时,结果不准确。

不要用它来搜索异常文件。

linux locate命令详解

上周,有客户问Linux系统上的location命令是什么,我给他详细解释了。
locate 命令是一种在 Linux 系统上查找文件的技术。
不要像find命令那样直接搜索磁盘。
相反,它通过预先构建的数据库搜索文件,因此速度非常快。

首先看一下表单命令。
可以找到,然后选择下面样式的参数。
该功能具有三个主要特点:快速搜索、数据库更新和搜索条件。

搜索工具速度快是因为它不需要一一查找硬盘分区,而是直接在数据库中搜索,所以速度很快。
但是,这个数据库必须定期更新,这取决于 updateb 程序。
它通常由 crond 守护进程运行。
默认是每天更新一次,但是你可以通过修改crontab来调整更新频率。

在搜索字段中,设置对特定搜索表单使用特殊字符的支持。
例如,您可以使用通配符来查找与特定模式匹配的文件或目录。

虽然它们可以定位命令并查找命令,但它们的工作方式不同。
搜索可以通过对数据库建立索引来完成,因此速度很快,但无法找到最近创建或重命名的文件。

这部分命令参数中,e参数可以排除定义的限制,1 参数是安全模式,f参数可以排除特定文件系统,q参数是安静模式,n参数可以限制搜索承诺的数量,r参数使用正则表达式,o参数指定数据库命名,d参数指定版本模式参数,d参数显示数据库模式。

例如,如果要查找所有与pwd相关的文档,可以使用locate命令。

有适合你的东西。
这个locate命令使用起来还是蛮方便的。
不过,我认为如果这是你第一次接触Linux系统,你需要花一些时间来熟悉这些命令的使用。