转载:https://www.cnblogs.com/fortunel/p/8663669
1 ./表示当前路径,在执行可执行文件时,linux系统会从环境变量PATH中查找该文件的路径,但因为 Linux 的默认搜索目录里没有当前目录,所以如果你在当前目录需要执行程序就要加上路径。
2 为什么windows系统不用加?那是因为windows系统的环境变量中,默认加了当前路径。
3 为什么不将./加到linux的环境变量中?
基于安全考虑,举例理解:
任何用户对 /tmp 都有 w 的权限,若某用户在 /tmp 之下新增 ls 这文件,而文件内容如下:
/usr/sbin/useradd -m adm0
/bin/ls
同时,将 PATH 的路径设为export PATH=./:$PATH
,则当 root 进入 /tmp 并执行 ls 时,就会优先执行 /tmp/ls,而非系统默认的 /bin/ls,这样不知不觉中新增了一个用户 adm0,若该文件有问题时,被执行后会发生不可预测的问题,存在隐患。
若非要加,则可以export PATH=$PATH:./,而
export PATH=./:$PATH
的安全性要低。