路径,/ usr/bin /和/ usr/local/bin /

moe*_*oey 5 linux macos bash command-line watchr

我在OS X(10.8.3)上安装了watchrgem install watchr.它安装在/ usr/bin/watchr中

$ which watchr
/usr/bin/watchr
Run Code Online (Sandbox Code Playgroud)

但是,当我试图调用它时$ watchr -v,系统找不到它.

$ watchr -v
-bash: /usr/local/bin/watchr: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我认为这与我的机器上的路径设置有关.我的问题:

  1. 修复它的正确方法是什么?
  2. 在一般情况下,应该去什么节目来/usr/bin/对比/usr/local/bin/
  3. 当我这样做时$ /usr/bin/watchr -e 'watch(./hello.txt) ...',我们是在查看当前目录中的hello.txt还是在/ usr/bin /中与watchr相同的目录?

Ale*_*ney 10

命令的路径缓存为错误值.尝试更新bash为路径存储的缓存目录.

hash -d watchr
Run Code Online (Sandbox Code Playgroud)

我在这里找到了答案ctags显示/ usr/local/bin/ctags,但是当我运行ctags时它会运行/ usr/bin/ctags.这怎么可能?


Lri*_*Lri 2

/usr/local/bin/watchr 是损坏的符号链接吗?这将which watchr不包含它,但watchr会打印此错误:

-bash: /usr/local/bin/watchr: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我不知道为什么gemOS X 附带的程序安装在 /usr/bin/ 中,但通常 /usr/bin/ 是用于预安装程序的,而包管理器使用类似 /opt/local/bin/ 或 /usr 的东西/本地/bin/。

我还在路径上的其他文件夹之前有 /usr/local/bin/ ,并且我将手动安装或编译的大多数程序都放在 /usr/local/bin/ 中。我曾经有一个单独的 ~/bin/ 文件夹,但很容易找到带有find /usr/local/bin ! -lname '../Cellar/*'.

一般有关 /usr/local/bin/ 的相关问题: