Bash:递归地将子目录添加到路径

前端之家收集整理的这篇文章主要介绍了Bash:递归地将子目录添加到路径前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你怎么做呢?我的代码/目录在文件夹和子文件夹和子文件夹中组织,所有这些(至少在理论上)包含我要定期运行的脚本或程序。

它把我的另外风景如画的.bashrc变成一个眼睛!

谢谢!

在你的脚本结尾,把行:
PATH=${PATH}:$(find ~/code -type d | tr '\n' ':' | sed 's/:$//')

这将附加您的〜/ code树中的每个目录到当前路径。我不喜欢自己的想法,喜欢只有几个目录拥有我自己的可执行文件,并明确列出它们,而是每个自己的目录。

如果要排除隐藏的所有目录,您基本上需要删除每行具有序列“/”的行。 (以确保您不检查隐藏目录下的子目录):

PATH=${PATH}:$(find ~/code -type d | sed '/\/\\./d' | tr '\n' ':' | sed 's/:$//')

这将阻止您获取诸如〜/ code / level1 / .hidden / level3 /的目录(即,一旦检测到它们被隐藏,它将停止在子树中搜索)。如果你只想保留隐藏的目录,但仍然允许它们下的非隐藏目录,请使用:

PATH=${PATH}:$(find ~/code -type d -name '[^\.]*' | tr '\n' ':' | sed 's/:$//')

这将允许〜/ code / level1 / .hidden2 / level3 /但不允许〜/ code / level1 / .hidden2 / .hidden3 / since -name只检查文件的基本名称,而不是完整路径名。

猜你在找的Bash相关文章