Answers:
使用find递归添加它们,如下所示:
PATH=$PATH$( find $HOME/scripts/ -type d -printf ":%p" )
警告:正如对该问题的评论中所提到的那样,不建议这样做,因为这会带来安全风险,因为无法保证所添加目录中的可执行文件不是恶意文件。
$PATH
很危险,但是添加子目录并没有明显恶化。但这通常是无用的,并且可能效率低下(有时甚至可能使您陷入环境大小限制)。
~/bin
或~/scripts
),因此它们的安全性是相同的。
~/scripts
。我没有,其他任何人都不应该
通常的unix目录结构将应用程序文件按种类分类到目录中:bin
用于可执行文件,lib
用于库,doc
用于文档等。那是当它们安装在单独的目录中时;经常应用被分成几个目录(因此很多系统刚刚三个目录中$PATH
:/usr/local/bin
,/usr/bin
和/bin
)。很少在目录中同时包含可执行文件和子目录,因此不需要在中包含目录的子目录$PATH
。
有时可能有用的是bin
将给定目录的子目录的所有子目录包括在$PATH
:
for d in /opt/*/bin; do PATH="$PATH:$d"; done
但是,很少这样做。要在非标准目录中执行可执行文件时,通常的方法$PATH
是在路径中的目录中建立符号链接,例如/usr/local/bin
。该stow
实用程序(或xstow
)可以是在这方面是有用的。