Path

將同一父目錄下的多個子目錄添加到PATH

  • May 9, 2020

我已經安裝了一些工具並將其放在 $ HOME/tools/ and each tool has its own /bin directory that contains the executable program. I now have the path to each individual /bin in my $ HOME/.bashrc 文件如下:

export PATH=$PATH:$HOME/tools/tool1/bin
export PATH=$PATH:$HOME/tools/tool2/bin
...

我想知道是否可以為所有工具編寫以下內容?

export PATH=$PATH:$HOME/tools

如果它不起作用,那麼最好的方法是什麼?

添加一個目錄PATH只使該目錄中的執行檔可作為裸命令名使用。這不會擴展到子目錄。

您可以在.profile( not.bashrc ) 中放置一個循環來添加多個目錄,例如:

for d in ~/tools/*/bin; do
 PATH="$PATH:$d"
done

(你不需要重複export:當一個變數被導出時,它會保持導出狀態,並且修改會反映在環境中)。

如果您在 下創建新目錄tools,這將不會反映在您正在進行的會話中,只會.profile讀取下一次。如果這不令人滿意,您可以使用不同的方法:將單個目錄~/bin放在 PATH 中,當您安裝軟體時,在~/bin. Stow(或它的替代品XStow)是這樣做的好方法;有關其工作原理的概述,請參閱跟踪程序。

引用自:https://unix.stackexchange.com/questions/114795