我已经安装了一些工具并将其放在 $HOME/tools/ 下,每个工具都有自己的 /bin 目录,其中包含可执行程序。我现在在 $HOME/.bashrc 文件中有每个单独的 /bin 的路径,如下所示:
export PATH=$PATH:$HOME/tools/tool1/bin
export PATH=$PATH:$HOME/tools/tool2/bin
...
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以为所有工具编写以下内容?
export PATH=$PATH:$HOME/tools
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,那么最好的方法是什么?
添加目录 toPATH仅使该目录中的可执行文件可用作裸命令名称。这不会扩展到子目录。
您可以在.profile( not.bashrc ) 中放置一个循环来添加多个目录,例如:
for d in ~/tools/*/bin; do
PATH="$PATH:$d"
done
Run Code Online (Sandbox Code Playgroud)
(您不需要重复export:当一个变量被导出时,它会保持导出状态,并且修改会反映在环境中)。
如果您在 下创建新目录tools,这将不会反映在您正在进行的会话中,只会在下一次.profile被读取。如果这不令人满意,您可以使用不同的方法:~/bin在 PATH 中放置一个目录,然后在安装软件时,在~/bin. Stow(或它的替代品XStow)是一个很好的方法;有关其工作原理的概述,请参阅跟踪程序。