在 Linux 中,如果一个命令包含空格,你不能直接使用 which 或 where 命令来查找它,因为这些命令会将命令名视为一个整体,无法识别其中的空格。
正确的方法:
1. 使用 which 命令(推荐)
which command_name
- 如果命令包含空格,
which会正确识别并显示其路径。 - 例如:
which ls输出:
/bin/ls
2. 使用 type 命令
type command_name
- 会显示命令的路径和类型(如:alias、function、builtin、command 等)。
- 例如:
type ls输出:
ls is a command
3. 使用 where 命令(较旧的命令)
where command_name
- 与
which类似,但可能不支持包含空格的命令名。 - 例如:
where ls输出:
/bin/ls
总结:
| 命令 | 是否支持空格命令名 | 说明 |
|---|---|---|
which |
✅ 是 | 通用,支持空格命令名 |
type |
✅ 是 | 显示命令信息,支持空格 |
where |
⚠️ 否(部分系统) | 旧命令,可能不支持空格 |
示例:
假设你有一个命令 my command,你想知道它的路径:
which my command
输出:
/usr/bin/my command
如果使用 type:
type my command
输出:
my command is a command

