如何从我的 PATH 中删除当前目录(“.”)?

如何从我的 PATH 中删除当前目录(“.”)?

我最近将 OSX 更新到了 El Capitan,在执行更新开发环境所需的步骤的过程中,我发现了一些令人不安的事情:bash 的行为就像.在我的 中一样PATH,尽管它不是。这是一个严重的安全问题,我找不到任何方法来关闭它。

结果如下echo $PATH

/Users/username/.rbenv/shims:/Users/username/.pyenv/plugins/pyenv-virtualenv/shims:/Users/username/.pyenv/shims:/opt/chefdk/bin:/Users/username/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/Users/username/.pyenv/bin:/Users/username/.rbenv/bin:/Users/username/.rbenv/plugins/ruby-build/bin::/Users/username/bin:/src/workspace/s3-utils/bin:/opt/local/lib/oracle:::/Users/username/bin/IAMCli/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

注意到.列表中缺少了什么吗?考虑到这一点,为什么会发生这种情况?

[10:26:57][username@flint:~/Downloads] :) $ ls script.sh ls: script.sh: No such file or directory [10:27:08][username@flint:~/Downloads] :( Exit code: 1 $ which script.sh [10:27:09][username@flint:~/Downloads] :( Exit code: 1 $ touch script.sh [10:27:15][username@flint:~/Downloads] :) $ chmod +x script.sh [10:27:19][username@flint:~/Downloads] :) $ which script.sh ./script.sh [10:27:23][username@flint:~/Downloads] :) $

不知何故,.它在我的路径中,尽管我没有这样配置它,并且$PATH不包括它。我该怎么办?

答案1

正如 Law29 在评论中指出的那样,我的问题是那些重复冒号的情况。出于某种原因,Bash 似乎将::您的 PATH 视为:.:

这看起来像是一个错误,因为我无法想象为什么有人会想要它。

相关内容