为初学者介绍 Linux whereis 命令(5个例子)
创始人
2024-03-01 21:58:13
0

有时,在使用命令行的时候,我们需要快速找到某一个命令的二进制文件所在位置。这种情况下可以选择 find 命令,但使用它会耗费时间,可能也会出现意料之外的情况。有一个专门为这种情况设计的命令:whereis

在这篇文章里,我们会通过一些便于理解的例子来解释这一命令的基础内容。但在这之前,值得说明的一点是,下面出现的所有例子都在 Ubuntu 16.04 LTS 下测试过。

Linux whereis 命令

whereis 命令可以帮助用户寻找某一命令的二进制文件,源码以及帮助页面。下面是它的格式:

whereis [options] [-BMS directory... -f] name...

这是这一命令的 man 页面给出的解释:

whereis 可以查找指定命令的二进制文件、源文件和帮助文件。 被找到的文件在显示时,会去掉主路径名,然后再去掉文件的(单个)尾部扩展名 (如: .c),来源于源代码控制的 s. 前缀也会被去掉。接下来,whereis 会尝试在标准的 Linux 位置里寻找具体程序,也会在由 $PATH$MANPATH 指定的路径中寻找。

下面这些以 Q&A 形式出现的例子,可以给你一个关于如何使用 whereis 命令的直观感受。

Q1. 如何用 whereis 命令寻找二进制文件所在位置?

假设你想找,比如说,whereis 命令自己所在位置。下面是你具体的操作:

whereis whereis

How to find location of binary file using whereis

需要注意的是,输出的第一个路径才是你想要的结果。使用 whereis 命令,同时也会显示帮助页面和源码所在路径。(如果能找到的情况下会显示,但是在这一例中没有找到)所以你在输出中看见的第二个路径就是帮助页面文件所在位置。

Q2. 怎么在搜索时规定只搜索二进制文件、帮助页面,还是源代码呢?

如果你想只搜索,假设说,二进制文件,你可以使用 -b 这一命令行选项。例如:

whereis -b cp

How to specifically search for binaries, manuals, or source code

类似的, -m-s 这两个 选项分别对应 帮助页面和源码。

Q3.如何限制 whereis 命令搜索位置?

默认情况下,whereis 是从由匹配符所定义的硬编码路径来寻找文件的。但如果你想的话,你可以用命令行选项来限制搜索。例如,如果你只想在 /usr/bin 寻找二进制文件,你可以用 -B 这一选项来实现。

whereis -B /usr/bin/ -f cp

注意:使用这种方式时可以给出多个路径。使用 -f 这一选项来明确分隔目录列表和要搜索的文件名。

类似的,如果你想只搜索帮助文件或源码,你可以对应使用 -M-S 这两个选项。

Q4. 如何查看 whereis 的搜索路径?

与此相对应的也有一个选项。只要在 whereis 后加上 -l

whereis -l

这是例子的部分输出结果:

How to see paths that whereis uses for search

Q5. 如何找到一个有异常条目的命令?

对于 whereis 命令来说,如果一个命令对每个显式的请求类型都不止一项,则该命令被视为异常。例如,没有可用文档的命令,或者对应文档分散在各处的命令都可以算作异常命令。 当使用 -u 这一选项,whereis 就会显示那些有异常条目的命令。

例如,下面这一例子就显示,在当前目录中,没有对应文档或有多个文档的命令。

whereis -m -u *

总结

我觉得,whereis 不是那种你需要经常使用的命令行工具。但在遇到某些特殊情况时,它绝对会让你的生活变得轻松。我们已经涉及了这一工具提供的一些重要命令行选项,所以要注意练习。想了解更多信息,直接去看它的 man 页面吧。


via: https://www.howtoforge.com/linux-whereis-command/

作者:Himanshu Arora 译者:wenwensnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

安卓上大分!ColorOS...
2025-05-03 18:46:23
如何在CentOS中使用f...
在Linux系统中,文件与目录的高效管理是日常运维和开发工作的基础...
2025-03-06 06:21:32
OPPO Find N5折...
OPPO近日正式发布了全球最薄折叠旗舰 OPPO Find N5。...
2025-02-22 12:20:35
AI适配更全面 OPPO ...
随着Deepseek大模型的火爆,手机AI功能再次成为热门话题。同...
2025-02-21 22:22:41
不知道为什么current...
这个问题可能由于以下几个原因而发生:当前布局中没有包含相应的控件,...
2025-01-12 09:30:25
不知道如何使用findBy...
使用Spring Security和Spring Data JPA...
2025-01-12 06:01:21

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...