Skip to main content

Linux 核心命令

文件和目录管理命令 whereis

whereis 命令是 Linux 中用来快速定位二进制文件、源码文件以及帮助文档位置的工具,最后会把whereis、which、locate 区别进行详细说明。

1. 命令语法

whereis [选项] 文件名

常用选项:

选项 作用
-b 只查找二进制文件路径
-m 只查找帮助(man)文件路径
-s 只查找源代码文件路径
-u 查找缺少二进制、源代码或帮助文件的程序
-B 指定二进制文件搜索路径
-M 指定帮助文件搜索路径
-S 指定源代码文件搜索路径
-f 结束路径列表,后面跟要查找的文件名

2. 基本用法

(1) 查找命令的全部信息

whereis ls

输出示例:

ls: /bin/ls /usr/share/man/man1/ls.1.gz

说明:

  • /bin/ls 是二进制可执行文件
  • /usr/share/man/man1/ls.1.gz 是帮助文档所在位置

(2) 只查找二进制文件

whereis -b bash

输出示例:

bash: /bin/bash /usr/bin/bash

(3) 只查找帮助文档

whereis -m bash

输出示例:

bash: /usr/share/man/man1/bash.1.gz

(4) 只查找源代码文件

whereis -s grep

输出示例:

grep: /usr/src/grep-3.4

3. 限定搜索路径

有时候系统路径太多,可以自己指定范围,这样搜索更快。

(1) 指定二进制搜索目录

whereis -B /bin -f ls

解释:

  • -B /bin 表示只在 /bin 目录找二进制文件
  • -f 表示路径列表结束,后面是要查找的文件名

(2) 指定帮助文件目录

whereis -M /usr/share/man/man1 -f cp

(3) 指定源码目录

whereis -S /usr/src -f grep

4. 查找缺失文件的程序

如果你想看看某个命令是不是缺少了源码或帮助文件,可以用:

whereis -u bash

输出示例:

bash: /bin/bash

说明:这里只有二进制文件路径,表示它缺少源码或帮助文档路径记录。

5. 同时组合选项

whereis 支持多选项组合,比如只找二进制和帮助文档:

whereis -bm tar

好,那我把 whichwhereislocate 的区别 补到这节的最后,顺着 whereis 的学习节奏来,让读者一下子把三个常用搜索命令的定位搞清楚。


6. whereis、which、locate 区别

在 Linux 中,这三个命令都是用来找文件或程序的,但原理和结果有明显不同。

命令 查找对象 查找原理 优点 缺点
which 可执行文件(命令) 只在 $PATH 环境变量指定的目录中查找 输出路径干净准确,专注找可执行命令 不能找源码或帮助文件
whereis 可执行文件、源码文件、帮助文档 在系统预定义的固定目录中搜索 搜索快,能一次找多种类型文件 只能在指定目录搜索,找不到非标准路径下的文件
locate 任意文件(不仅是命令) 搜索本地维护的数据库(由 updatedb 生成) 搜索范围广,速度极快 数据库不是实时更新,可能找不到刚新建的文件

1. which

which ls

输出:

/bin/ls

说明:只显示可执行文件路径。

2. whereis

whereis ls

输出:

ls: /bin/ls /usr/share/man/man1/ls.1.gz

说明:显示二进制文件 + 帮助文档路径。

3. locate

locate ls

输出(部分):

/bin/ls
/usr/share/man/man1/ls.1.gz
/usr/lib/lsblk
...

说明:列出所有包含 "ls" 的路径,范围很广。

使用建议

  • 找可执行文件路径 → 用 which
  • 找命令的二进制、源码和帮助文档 → 用 whereis
  • 找任意文件(甚至文件夹) → 用 locate