📜  Linux 中的 which 命令和示例(1)

📅  最后修改于: 2023-12-03 15:32:41.472000             🧑  作者: Mango

Linux 中的 which 命令和示例

在 Linux 操作系统中,which 命令用于查找与给定命令相关的可执行文件的位置。它在系统路径中搜索给定命令,并返回找到的第一个可执行文件的路径。

语法
which [OPTIONS] COMMAND
选项

| 选项 | 描述 | | --- | --- | | -a, --all | 显示所有可执行文件的路径,而不仅仅是第一个 | | -p, --skip-alias | 跳过命令别名,直接查找命令 | | -s, --skip-dot | 不要在路径中搜索带点的文件 |

示例
查找命令的位置

使用 which 命令最常见的用法是查找给定的命令在系统中的所在位置。例如,要查找 ls 命令的位置,可以运行以下命令:

$ which ls
/bin/ls

这将返回 ls 命令的路径 /bin/ls。

显示所有可执行文件的位置

默认情况下,which 命令只显示找到的第一个可执行文件的路径。如果想要显示所有找到的可执行文件的路径,可以使用 -a 或 --all 选项。例如,以下命令将返回所有与 python 命令相关的可执行文件的路径:

$ which -a python
/usr/bin/python
/usr/local/bin/python
跳过命令别名

如果一个命令已经被设置了别名,which 命令将返回该别名而不是查找的命令的路径。如果想要跳过别名并查找真正的命令路径,可以使用 -p 或 --skip-alias 选项。以下是一个示例,展示了在存在 ls 命令别名的情况下查找真正的命令路径:

$ alias ls="ls -aF"
$ which ls
alias ls='ls -aF'
/usr/bin/ls
$ which -p ls
/usr/bin/ls
不要查找带点的文件

通常,which 命令会在 PATH 环境变量中列出的所有目录中查找可执行文件,包括以点(.)开头的当前目录。如果你想要跳过从当前目录开始查找,可以在命令中使用 -s 或 --skip-dot 选项。以下命令将在跳过当前目录的情况下查找可执行脚本:

$ which -s script.sh
/usr/local/bin/script.sh