加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:09:41 所属栏目:安全 来源:网络整理
导读:你怎么做呢?我的代码/目录在文件夹和子文件夹和子文件夹中组织,所有这些(至少在理论上)包含我要定期运行的脚本或程序。 它把我的另外风景如画的.bashrc变成一个眼睛! 谢谢! 在你的脚本结尾,把行: PATH=${PATH}:$(find ~/code -type d | tr 'n' ':' |
你怎么做呢?我的代码/目录在文件夹和子文件夹和子文件夹中组织,所有这些(至少在理论上)包含我要定期运行的脚本或程序。

它把我的另外风景如画的.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只检查文件的基本名称,而不是完整路径名。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读