Linux whereis命令用法详解

在 Linux 中,搜索文件最简单快速的方法就是使用 whereis 命令,该命令的基本格式如下:

[root@localhost ~]# whereis [-bmsu] [-BMS 目录... -f] [文件...]

此格式中,用 [] 括起来的都是可选选项,其中各个参数的含义分别是:
  • -b:只查找二进制文件。
  • -B 目录:只在指定的目录下查找二进制文件。
  • -m:只查找说明文件。
  • -M 目录:只在指定的目录下查找说明文件。
  • -s:只查找原始代码文件。
  • -S 目录:只在指定的目录下查找原始代码文件。
  • -u:查找不包含指定类型的文件。
  • -f:不显示文件名前的路径名称。

前面之所以说 whereis 简单,因为只要执行如下命令:

[root@localhost ~]# whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

就可以搜索到 ls 命令以及它的联机帮助文档所在的位置。

通常情况下,我们只需要查看输出结果的第一部分,这是目标命令所在的位置。

同时该命令执行效率还很高,因为它根本不在磁盘中漫无目的的乱找,而是在一个数据库中(/var/lib/mlocate)查询,这个数据库是 Linux 系统自动创建的,其包含本地所有文件的信息,并且每天通过自动执行 updatedb 命令更新一次。

但是,也正因为这个数据每天才自动更新一次,会使得 whereis 命令的搜索结果可能会不准确。比如刚添加的文件可能搜不到,而刚删除的文件还会出现在结果中。因此,如果想使用 whereis 命令获得准确的搜索结果,最好事先手动执行一个 updatedb 命令。

虽然 whereis 命令既简单又高效,但是功能却很有限,它只能用于搜索可执行文件、联机帮助文件和源代码文件。如果想要获得更全面的搜索结果,可以使用 locate、find 等搜索命令。