在.bashrc
我添加了一个dir,我放了一些脚本。这是可能的 - 自动添加其所有子目录 - 以便我不必手动逐个添加它们吗? (并且每次我在那里做一个导演时都不必访问.bashrc
)
修改:
使用Laurent Legrand的解决方案,这就是我现在正在使用的方法:
PATH=$PATH:/usr/local/share/NAMD_2.7_Linux-x86_64:/usr/local/share/jmol-12.0.31:/usr/local/share/NAMD_2.7_Linux-x86_64_orig:/usr/local/share/sage-4.6.2:/opt/mongoDB/bin
PATH=$PATH:$(find ~/Study/geek/scripts -type d -printf "%p:")
这增加了dir及其子目录。
答案 0 :(得分:3)
这样的事情应该有效
PATH=$PATH:$(find your_dir -type d -printf "%p:")
答案 1 :(得分:2)
假设你的所有脚本都在〜/ bin
之下maindir=~/bin
for subdir in `tree -dfi $maindir`
do
PATH=$PATH:$subdir
done
export $PATH
可以做到这一点......
答案 2 :(得分:0)
这是将/opt
目录中的可执行文件添加到路径的最佳做法:
for subdir in $(find /opt -maxdepth 1 -mindepth 1 -type d); do
PATH="$subdir/bin:$PATH"
done
export $PATH
由于所有需要的可执行文件都应位于/opt/*/bin
中,因此我们使用/opt/*
避免使用超出-maxdepth 1
的子目录,使用/opt
避免使用-mindepth 1
目录本身。 另请注意,我们在每个目录的末尾添加了/bin
。
同样适用于脚本的情况。如果您需要更多深度,只需修改-maxdepth
的值或完全删除它以获得无限级别(如果包含主脚本路径,则同样适用于-mindepth
)。 如果在多个子目录级别中找到相同的脚本名称,请注意歧义。
因此,在您的情况下,您可以使用:
for subdir in $(find $HOME/path/to/scripts -type d); do
PATH="$subdir:$PATH"
done
export $PATH