为什么在当前目录中执行程序时需要“./”?

Jas*_*dan 4 shell executable

可能的重复:
为什么我们使用“./”来执行文件?

这似乎是多余的,一段时间后会很烦人——有没有办法改变这一点?如果没有,有人可以解释这背后的原因吗?

谢谢!

小智 6

如果当前目录在您的路径中并且在路径中较早命名的目录中没有另一个同名的可执行文件,则不会。如果这些条件中的任何一个不正确,./ 有效地表示“看这里”。

虽然您可以添加“。” 到您的路径,这是不可取的,因为如果您从具有与系统命令名称匹配的可执行文件的目录中执行命令,这将为意外(或恶意)结果打开大门。

  • 这在以 `su` 权限执行 shell 脚本时变得特别危险,因为它无法事先清理环境。 (2认同)