• Linux whereis,which


    whereis

    简介

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

    语法格式

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

    Q&A

    Q1:如何查找二进制文件所在的位置?

    比如,用whereis命令查找whereis自己这个二进制可执行程序在哪里,具体操作:

    ydqun@VM-0-9-ubuntu b % whereis whereis                                                            [130]
    whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz
    

    需要注意的是,输出的第一个路径才是你想要的结果,使用whereis命令,会默认也显示帮助页面和源码所在的路径,所以输出中第二个路径是帮助页面文件的所在位置,这里没有找到源码。

    Q2:如何只搜索二进制文件、帮助页面或源码,而不是默认找出三种?

    如果你只想搜索二进制文件,可以使用-b命令选项,例如:

    ydqun@VM-0-9-ubuntu b % whereis -b whereis                                                           [0]
    whereis: /usr/bin/whereis
    

    类似的,-m对应查找帮助页面,-s对应查找源码。

    Q3:如何限制whereis的搜索目录(搜索范围)?

    如果你只想在/usr/bin目录下寻找二进制文件,你可以用-B这一选项来实现

    root@icg:/home/yudongqun/coverity_new/icg_server# whereis -B  /usr/bin -f man
    man: /usr/share/man/man7/man.7.gz /usr/share/man/man1/man.1.gz /usr/bin/man
    

    注意:使用这种方式时可以给出多个要搜索的目录,使用-f这一选项是用来明确分隔目录列表和要搜索的目标文件名的,类似的,如果你想要在规定目录下查找帮助页面,则用-M;查找源码,则用-S。

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

    选项-l可以列出whereis默认的查找路径(查找范围)。

    ydqun@VM-0-9-ubuntu b % whereis -l                                                                   [0]
    bin: /usr/bin
    bin: /usr/sbin
    bin: /lib/x86_64-linux-gnu
    bin: /usr/lib/x86_64-linux-gnu
    bin: /usr/lib
    bin: /bin
    bin: /sbin
    bin: /etc
    bin: /lib
    bin: /lib64
    bin: /usr/games
    bin: /usr/local/bin
    bin: /usr/local/sbin
    bin: /usr/local/etc
    bin: /usr/local/lib
    bin: /usr/local/games
    bin: /usr/include
    bin: /usr/local
    bin: /usr/share
    man: /usr/share/man/pl
    man: /usr/share/man/da
    man: /usr/share/man/zh_CN
    man: /usr/share/man/es
    man: /usr/share/man/man4
    man: /usr/share/man/pt_BR
    man: /usr/share/man/sl
    man: /usr/share/man/fi
    man: /usr/share/man/it
    man: /usr/share/man/man8
    man: /usr/share/man/sv
    man: /usr/share/man/man1
    man: /usr/share/man/man9
    man: /usr/share/man/cs
    man: /usr/share/man/ja
    man: /usr/share/man/nl
    man: /usr/share/man/man7
    man: /usr/share/man/hu
    man: /usr/share/man/sr
    man: /usr/share/man/man3
    man: /usr/share/man/pt
    man: /usr/share/man/tr
    man: /usr/share/man/man2
    man: /usr/share/man/de
    man: /usr/share/man/ru
    man: /usr/share/man/id
    man: /usr/share/man/man5
    man: /usr/share/man/zh_TW
    man: /usr/share/man/man6
    man: /usr/share/man/fr
    man: /usr/share/man/ko
    man: /usr/share/info
    src: /usr/src/linux-headers-4.15.0-88
    src: /usr/src/linux-headers-4.15.0-88-generic
    src: /usr/src/linux-headers-4.15.0-130-generic
    src: /usr/src/linux-headers-4.15.0-130
    

    这里,也就是说,若果你没有指定搜索目录,whereis会默认从这些目录中去搜索目标文件,如果在这些目录中没有目标文件,则会提示搜索不到。

    which

    简介

    Linux which命令用于查找文件。
    which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

    语法

    which [-a] filename

    例子

    which使用起来非常简单。

    ydqun@VM-0-9-ubuntu b % which mkdir                                                                  [0]
    /bin/mkdir                                                                             
    ydqun@VM-0-9-ubuntu b % which rmdir du df                                                            [0]
    /bin/rmdir
    /usr/bin/du
    /bin/df
    
  • 相关阅读:
    MySQL 5.6 Windows 安装 配置 试用
    abp Could not cast or convert from System.Int64 to System.Collections 对不起,在处理你的请求期间,产生了一个服务器内部错误!
    using Volo.Abp.Application.Services;中 没有IAsyncCrudAppService 方法
    ComponentModel.DataAnnotations.Schema 找不到
    VS2017--无法启动程序dotnet.exe ........web 502
    Dev XtraReport 正在打印弹出框如何隐藏 批量打印 静默打印
    重绘 提示 DockedBarControl Dev控件
    GetHtml
    C# 相似对象赋值 通过table 互转 另辟蹊径 垃圾简单代码
    数据库 无表 获取时间列表
  • 原文地址:https://www.cnblogs.com/ydqblogs/p/14302665.html
Copyright © 2020-2023  润新知