为什么是 。默认不在路径中?

dir*_*ide 68 bash path

多年来,在类 UNIX 系统上(与我最相关的是 Linux),我注意到.(当前目录)在$PATH默认情况下永远不会出现。为什么是这样?

我记得几年前读到这是一个安全问题,但我读过的文章并没有解释到底是什么问题。是不是因为有人可能会离开的恶意版本,lscp在一个目录下,我最终会不自觉地运行它呢?

har*_*ymc 45

您正确回答了自己的问题,这正是 dot 不在路径中的原因:
防止幼稚的病毒或诚实的错误。

当然,这是一个非常蹩脚和无用的杀毒措施,没有什么能阻止你自己在路径上加点。

  • 不过,有趣的是,您不受此保护,但不受目录中单独文件 `-rf` 的影响(使 `rm *` 变得有趣);-) (15认同)
  • @msw:另一个 Unix 答案是通常路径中的点对于管理员帐户是不赞成的,但对于非管理员来说是可以的。 (2认同)
  • @Jonz:不是真的。但是,如果您的计算机没有病毒,则风险很小。如果计算机被感染,那么对于现代病毒,路径是您最不担心的。 (2认同)