which

在环境变量PATH中搜索某个命令,返回命令的执行文件或者脚本位置,默认只显示第一个结果。这需要一个或多个参数。对于它的每个参数,它会打印出当在shell提示符下输入该参数时将执行的可执行文件的完整路径。它通过使用与bash(1)相同的算法在环境变量路径中列出的目录中搜索可执行文件或脚本来做到这一点。

此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

 

1、语法

which [options]  [--]  programname [...]

 

2、选项列表

选项

说明

-v | -V | --version

显示命令版本信息

--help

显示帮助文档

-a | -all

输出所有的结果,而不只是第一个

--read-alias | -i

从stdin中读取别名,在stdout上报告匹配的别名。

--skip-alias

忽略“--read-alias”

--read-function

从标准输入读取函数,在stdout输出

--skip-functions

忽略“--skip-functions”

--skip-dot

忽略PATH中以点开头的目录

--skip-tilde

跳过路径中以主目录中的波浪线和可执行文件开头的目录。

--show-dot

如果路径中的目录以点开始,并为该路径找到匹配的可执行文件,则打印“./Programname”而不是完整路径。

--show-tilde

当目录与主目录匹配时,输出一个波浪线。如果将该选项作以root身份调用,则忽略此选项

--tty-only

如果不在TTY上,则停止右边的处理选项。

 

3、返回值

它返回失败参数的数量,或者当未指定“程序名”时返回-1。

 

4、实例

1)搜索指令

[root@192 /]# which -a ls

alias ls='ls --color=auto'         //ls是一个别名

    /bin/ls

2)显示所有结果 

[root@192 /]# which -a ll

alias ll='ls -l --color=auto'

    /bin/ls

/usr/bin/which: no ll in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/src/jdk1.8.0_181/bin:/root/bin)

 

 

 

Copyright@david  zhytwj2018@163.com