繁体   English   中英

找到没有哪个二进制文件的路径

[英]Find path to binary without which

一个开源项目,我贡献,对依赖which ,我想删除,一些Linux发行版(如Fedora 20的云版本),默认情况下不与它船,我相信它的丑陋,迫使其安装,考虑到我们对它的使用是多么微不足道。

我们所做的就是找到 Java 二进制文件的路径,然后使用该信息设置$JAVA_HOME

有没有办法用 Bash 内置插件来做到这一点? 一般来说,我怎样才能优雅地找到一个二进制文件,同时最小化依赖关系(比如which )? 或者,仅使用which是否更好,例如,如果唯一的选择是针对$PATH中的目录运行find并且社区认为这非常不雅?

请注意,对于与which相关的事情,它对 Google 极其无效。

POSIX-ly 正确方法:

cmd=$(command -v whatever)

也许通过解析 shell 内置type的输出?

~/ type python
python is /usr/bin/python
~/ type type
type is a shell builtin

zshbashsh测试

如果您使用的是bash ,则-P选项会直接为您提供所需的结果:

~/ type -P python
/usr/bin/python

我的偏好已经提到了“类型”。 但是这个任务还有一个额外的命令:

 whereis -b <file>

定位指定文件的二进制文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM