为什么Go(lang)二进制文件不会显示在`where`,`whereis`和类似工具中?

Vx杰森xV

我已经通过安装了两个Go实用程序go get -u github.com/[owner]/[repo],但我不明白为什么它们不遵守标准的shell约定。我安装的实用程序在运行命令的目录中没有任何痕迹,也没有任何指示任何结果的输出,因此我通过相当标准的方法进行查找,但找不到它,但我始终能够运行它:

~ $ which hey
~ $ hey
Usage: hey [options...] <url>

Options:
  -n  Number of requests to run. Default is 200.
  -c  Number of requests to run concurrently. Total number of requests cannot be smaller than the concurrency level. Default is 50.
[…]

我只是弄清楚了,因为我注意到我的$PATHinclude的尾端:~/go/bin,并且确定那里已经安装了我安装的三个go实用程序。从漫长的find搜索中拯救了我

Go安装的二进制文件如何逃避标准文件查找方式,但仍然能够运行?

这是在macOS High Sierra(10.13.6)随附的标准bash shell上发生的。

~ $ type -a hey
hey is /Users/jsalaz/go/bin/hey
~ $ type -a which
which is /usr/bin/which
用户名

据我了解,~/go/bin用作$ PATH组件依赖于非标准(也许是GNU?)扩展。

  • 每当shell(bash)搜索二进制文件时,它都会将~/前缀扩展到主目录的路径。您可以看到type(内置在Shell中)找到Go程序就可以了。

  • 同时,该/usr/bin/which命令(由macOS提供,并且不是外壳程序的一部分)不会执行此扩展,因为The Open Group在$ PATH应该如何工作官方描述中未指定任何此类内容

换句话说,~/前缀是外壳程序语言的一部分,而不是常规的操作系统范围路径语法的一部分。在所有其他地方,包括$ PATH(不限于shell!),它仅表示一个名为的目录~

设置$ PATH时,您需要确保在分配时扩展路径:

PATH=$PATH:~/go/bin
PATH=$PATH:$HOME/go/bin
PATH="$PATH:$HOME/go/bin"

这将不起作用:

PATH="$PATH:~/go/bin"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用whereis找到ls二进制文件,但为什么找不到ll?

来自分类Dev

使用whereis找到ls二进制文件,但为什么找不到ll?

来自分类Dev

为什么“二进制文件”不在原始二进制文件中?

来自分类Dev

为什么每次重建时go go二进制文件都会更改?

来自分类Dev

使用whereis找到符号链接的二进制文件

来自分类Dev

如果二进制是0和1,为什么在二进制文件和程序中看到类似\ x8c \ x8e \ xfc \ r \ xc3 \ x8a的内容?

来自分类Dev

为什么Go会为小型程序生成大型二进制文件?

来自分类Dev

为什么在ARM二进制文件上显示readelf奇数入口点地址?

来自分类Dev

为什么“ git status”在二进制文件未修改且文件模式相同时显示修改后的二进制文件

来自分类Dev

为什么git索引文件是二进制的?

来自分类Dev

cat为什么更改二进制文件的内容?

来自分类Dev

为什么忽略二进制文件是最佳做法?

来自分类Dev

为什么在版本控制系统中应将.pbxproj文件视为二进制文件?

来自分类Dev

为什么对于Linux仅存在Mono和MonoDevelop的非常老的二进制文件?

来自分类Dev

为什么不同的十六进制编辑器为文件显示不同的二进制文件?

来自分类Dev

git2go与libssl和libssh2在单个二进制文件中

来自分类Dev

Xcode存档中显示了额外的二进制文件

来自分类Dev

Xcode存档中显示了额外的二进制文件

来自分类Dev

为什么我的系统仅在/ snap中查找二进制文件?

来自分类Dev

为什么将秘密密钥放入iOS二进制文件中是安全的

来自分类Dev

为什么二进制文件的内容未在c中打印?

来自分类Dev

为什么fwrite不适用于C中的二进制文件?

来自分类Dev

为什么较少将其配置存储在二进制文件中?

来自分类Dev

为什么将秘密密钥放入iOS二进制文件中是安全的

来自分类Dev

为什么我的系统只在 /snap 中查找二进制文件?

来自分类Dev

为什么在命令行中执行归档文件不会像Windows那样自动使用二进制文件来打开它?

来自分类Dev

什么是python中模块的二进制文件

来自分类Dev

在C ++中从文件读取ASCII和二进制

来自分类Dev

在二进制文件中搜索和替换

Related 相关文章

  1. 1

    使用whereis找到ls二进制文件,但为什么找不到ll?

  2. 2

    使用whereis找到ls二进制文件,但为什么找不到ll?

  3. 3

    为什么“二进制文件”不在原始二进制文件中?

  4. 4

    为什么每次重建时go go二进制文件都会更改?

  5. 5

    使用whereis找到符号链接的二进制文件

  6. 6

    如果二进制是0和1,为什么在二进制文件和程序中看到类似\ x8c \ x8e \ xfc \ r \ xc3 \ x8a的内容?

  7. 7

    为什么Go会为小型程序生成大型二进制文件?

  8. 8

    为什么在ARM二进制文件上显示readelf奇数入口点地址?

  9. 9

    为什么“ git status”在二进制文件未修改且文件模式相同时显示修改后的二进制文件

  10. 10

    为什么git索引文件是二进制的?

  11. 11

    cat为什么更改二进制文件的内容?

  12. 12

    为什么忽略二进制文件是最佳做法?

  13. 13

    为什么在版本控制系统中应将.pbxproj文件视为二进制文件?

  14. 14

    为什么对于Linux仅存在Mono和MonoDevelop的非常老的二进制文件?

  15. 15

    为什么不同的十六进制编辑器为文件显示不同的二进制文件?

  16. 16

    git2go与libssl和libssh2在单个二进制文件中

  17. 17

    Xcode存档中显示了额外的二进制文件

  18. 18

    Xcode存档中显示了额外的二进制文件

  19. 19

    为什么我的系统仅在/ snap中查找二进制文件?

  20. 20

    为什么将秘密密钥放入iOS二进制文件中是安全的

  21. 21

    为什么二进制文件的内容未在c中打印?

  22. 22

    为什么fwrite不适用于C中的二进制文件?

  23. 23

    为什么较少将其配置存储在二进制文件中?

  24. 24

    为什么将秘密密钥放入iOS二进制文件中是安全的

  25. 25

    为什么我的系统只在 /snap 中查找二进制文件?

  26. 26

    为什么在命令行中执行归档文件不会像Windows那样自动使用二进制文件来打开它?

  27. 27

    什么是python中模块的二进制文件

  28. 28

    在C ++中从文件读取ASCII和二进制

  29. 29

    在二进制文件中搜索和替换

热门标签

归档