python - 将所有子目录通配符添加到 $PATH 环境变量 (bash)
问题描述
这是我的目录结构(creddump/
是我直接从github下载的一个程序,任何包管理器都不支持):
/usr/local/bin/
---> creddump/
---> pwdump.py (imports from framework)
---> framework/
---> types.py
---> lsadump.py
---> another_program/
---> x.py
我希望能够简单地通过键入and来运行pwdump.py
,而不是它们的完整路径。因此,我将它们的路径添加到我的环境变量中,方法是将其添加到文件中这一行的开头,如下所示:x.py
pwdump.py
x.py
$PATH
~/.bashrc
export PATH=/usr/local/bin/creddump/:/usr/local/bin/another_program/:~/.local/bin:/snap/bin:/usr/sandbox/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/share/games:/usr/local/sbin:/usr/sbin:/sbin:$PATH
这很好,但我不想$PATH
每次我想下载另一个程序时手动添加另一行。我做了一些挖掘,发现 bash 支持通配符扩展。~/.bashrc
我在:中取消了对这一行的注释,shopt -s globstar
并添加/usr/local/bin/**/:
到了export PATH
上面行的开头。之后,我做了source ~/.bashrc
和/或在我的各种尝试中重新启动了终端。但是,它没有用;
bash: pwdump.py: command not found
我也尝试将它添加到中间和结尾,但没有任何效果。我知道这应该能够工作,因为在我将 Parrot Security OS 系统从 4.10 升级到 4.11 之前,我已经让它工作了。我什export PATH
至也尝试过添加该行~/.profile
。
有想法该怎么解决这个吗?太感谢了!
解决方案
对于tommy2111111111的令人难以置信的简单解决方案(我找不到解释)不起作用的人,这是根据文档的替代方案:
d=(/usr/local/bin/**/)
PATH="${d[*]/%\//:}"$PATH
推荐阅读
- c# - 如何从 C# 程序运行 PowerShell 脚本?
- python - 我需要一些帮助才能让我的 python 脚本正常工作
- python - ImportError:无法导入名称“fitpack”
- r - 我需要在 r 中创建列的未来 7 天值的总和。总和应由具有字符串值的另一列分组
- java - 返回 1 到 100 之间 num 的倍数之和
- google-drive-api - 仅使用 REST 为 Google Drive 服务帐户生成访问令牌
- excel - 引用另一个单元格的 Excel 验证公式
- android - 奥利奥上的下载管理器 pdf
- php - Wordpress 简码问题
- python - Target 的 Python 网络爬虫