学习总结6.0 linux 查询命令-locate

locate

locate命令用来查找文件或目录。

locate命令要比其他查找文件命令(例如:find)快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db

/var/lib/mlocate/mlocate.db这个数据库中含有本地所有文件信息。Linux 系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用locate查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

接下让我们详细的学习locateupdatedb的使用方法。

locate具体命令如下:

locate 命令参数 文件/目录

常用命令参数如下:

 
 
  1. -c, --count 只输出找到的数量;
  2. -d, --database DBPATH 使用DBPATH指定的数据库,而不是默认数据库/var/lib/mlocate/mlocate.db;
  3. -i, --ignore-case 忽略大小写;
  4. -q, --quiet 安静模式,不会显示任何错误讯息;
  5. -e, --existing 只显示当前存在的文件条目;

案例演示1

搜索etc目录下以pass开头的文件或目录,具体使用如下命令:

 
 
  1. locate /etc/pass

案例演示

搜索包含passwd字母的文件或目录总个数,具体使用如下命令:

 
 
  1. locate -c passwd

updatedb

updatedb命令用来创建或更新locate命令所必需的数据库文件。

updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入locate数据库文件中。

具体命令如下:

updatedb 命令参数

常用参数如下:

 
 
  1. -o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件;
  2. -U<目录>:更新指定目录的slocate数据库;
  3. -v:显示执行的详细过程;

执行权限:updatedb必须以root权限才能执行,如果是普通用户想执行updatedb时,需要在命令前加sudo命令来提升权限为root权限。

案例演示1

新创建一个testFile文件,更新locate数据库后使用locate命令定位该文件,具体使用如下命令:

 
 
  1. touch testFile
  2. locate testFile
  3. sudo updatedb
  4. locate testFile

可以看到新创建文件后直接使用locate去查找是没有任何结果的,只有更新数据库后才能查找到新创建的文件。

案例演示2

删除testFile文件,更新locate数据库后使用locate命令定位该文件,具体使用如下命令:

 
 
  1. rm testFile
  2. locate testFile
  3. sudo updatedb -U ./
  4. locate testFile

Guess you like

Origin blog.csdn.net/xiexieya233/article/details/121430628