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

als*_*adk 0 linux security path

许多人说出于安全原因,当前目录不在$PATH变量中,Linux 不会查看当前目录以查看该目录中是否有特定命令可用。但我确实cd /usr/bin做了ls,而且效果很好;我也做echo $PATH了,输出包含/usr/bin.

您应该注意到,出于安全原因,当前目录不在$PATH变量中,Linux 不会查看当前目录以查看该目录中是否有特定命令可用。

Sander van Vugt 的 Red Hat® RHCSATM/RHCE® 7 证书指南

为什么我能够运行ls,同时在/usr/bin

Glo*_*del 6

linux 不会查看当前目录以查看该目录中是否有特定命令可用

确实如此,但它确实会查看 中提到的所有目录$PATH,即使您当时可能位于这样的目录中。

换句话说,如果.不在您的 . 中$PATH,则无论在何处,它都会搜索相同的目录以查看那里是否有特定命令可用。

  • 是的,如果 `.` 在 `$PATH` 中,它会*总是*在当前目录中查找。 (2认同)