简介

在 PATH变量 指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。在日常工作中经常使用which命令来检查某个系统命令是否存在,或者找出所执行命令所对应的具体位置。

which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!

命令格式

which [OPTIONS] FILE_NAME…

常用参数

—skip-alias 禁止显示别名
-a 打印 PATH 中的所有匹配项,而不仅仅是第一个

示例

  1. [root@localhost ~]# echo $PATH
  2. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  3. [root@localhost ~]# which cat
  4. /usr/bin/cat
  5. [root@localhost ~]# which ls
  6. alias ls='ls --color=auto'
  7. /usr/bin/ls
  8. [root@localhost ~]# which --skip-alias ls
  9. /usr/bin/ls
  10. ## -a 查看所有符合的文件
  11. [root@localhost ~]# cp /usr/bin/cat /usr/local/bin/
  12. [root@localhost ~]# which cat
  13. /usr/local/bin/cat
  14. [root@localhost ~]# which -a cat
  15. /usr/local/bin/cat
  16. /usr/bin/cat
  17. ## 找不到内建命令
  18. [root@localhost ~]# which type
  19. /usr/bin/which: no type in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
  20. ## 查找多个命令
  21. [root@localhost ~]# which cd pwd
  22. /usr/bin/cd
  23. /usr/bin/pwd