为什么需要 ./ 来运行可运行文件?

Dav*_*d B 9 linux filesystems ubuntu

我正在使用 ubuntu,我注意到我的许多可运行脚本将无法运行,除非我在主题之前加上./.

例如,如果我有一个 perl 脚本:/home/me/script.pl并且我目前在 中/home/me,则键入script.pl不会这样做,但./script.pl会。

这是为什么?

小智 21

因为当前目录不在您的路径中。这是一个安全功能。如果它在您的路径中,则有人可能会删除常用命令的恶意副本,并且当您在该目录中而不是运行真正的 sudo 时,例如,您将运行假的。那将是一件坏事。

  • 这有点误导。只要`.`在`/usr/bin/`之后,它就不会取代真正的`sudo`。这是为了确保您不会意外地将程序添加到您的路径中,但这主要不是为了取代现有的程序。 (3认同)

mip*_*adi 13

要执行脚本,您需要输入脚本的完整路径,除非脚本存在于$PATH环境变量中列出的目录之一中。一般(与).(当前目录)是不是你的$PATH,所以你需要输入./script来执行它。