52. shell命令--which
功能说明
which 命令在 Linux 和 Unix 系统中用于定位并显示给定命令的完整路径。这个命令会在环境变量 $PATH 指定的目录中搜索指定的程序名,并返回该程序名的第一个实例的完整路径。如果找到了,它会打印出该路径;如果没有找到,它会打印一条消息表示没有找到该程序。
语法格式
which [选项]... 程序名...
SYNOPSIS
which [options] [--] programname [...]
选项说明
-a 或 --all:显示所有匹配项的完整路径,而不仅仅是第一个。
-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
-w:指定输出时栏位的宽度a;
-V 或 --version:显示版本信息。
--help:显示帮助信息。
实践操作
1. 看命令所在绝对路径
which man
which cd
which ls
which which
which mkdir touch
2. which 查找的路径
echo $PATH
3. 内建一些命令无法查找到
which history
history
注意事项
- which 命令仅搜索 $PATH 环境变量中定义的目录。
- 如果一个命令有多个版本,which 命令只会返回 $PATH 中第一个找到的版本。
- 对于别名或 shell 内置命令,which 命令可能无法正确找到它们,因为这些命令不是独立的可执行文件。对于别名,可以使用 alias 命令查看;对于 shell 内置命令,可以使用 type 命令来识别。