whereis
是 Linux 系统中用于快速定位二进制程序、源代码文件和手册页路径的命令。它比 which
命令更全面,能同时查找多个相关文件。以下是详细用法:
whereis [选项] 文件名
选项 | 作用 |
---|---|
-b |
仅搜索二进制程序(可执行文件) |
-m |
仅搜索手册页(man pages) |
-s |
仅搜索源代码文件 |
-l |
显示 whereis 的搜索路径(数据库位置) |
-u |
查找不完整的文件(即缺少某类文件的情况) |
-f |
强制分隔文件名和选项(用于复杂参数) |
查找命令的所有相关文件(默认行为)
whereis python
输出示例:
python: /usr/bin/python /usr/lib/python2.7 /usr/include/python2.7 /usr/share/man/man1/python.1.gz
仅查找二进制文件
whereis -b ls
输出:
ls: /usr/bin/ls
仅查找手册页
whereis -m grep
查找不完整的文件(例如只有二进制文件但无手册页)
whereis -u -m ls
ls
有二进制文件但无手册页,则会显示。查看 whereis
的搜索路径
whereis -l
输出示例:
bin: /usr/bin /usr/sbin /usr/libexec
man: /usr/share/man
src: /usr/src
依赖数据库:whereis
从预建的数据库(如 mlocate
或 slocate
)中查找,而非实时扫描磁盘。若文件是新增的,可能需要先更新数据库:
sudo updatedb
与 which
的区别:
which
只返回 PATH 环境变量中的可执行文件路径。whereis
返回更全面的结果(包括手册页、源代码等)。与 find
的区别:
find
是实时扫描磁盘,功能强大但速度慢。whereis
速度快但结果有限。如果需要更灵活的文件搜索,建议结合 find
或 locate
命令使用。