找出程序的路径

6 linux unix bash shell

在 Unix 上,我可以从任何地方调用某些程序,例如sort,pwdmy_custom_script.sh

我怎样才能找出系统上my_custom_script.sh真正驻留的位置?

slh*_*hck 8

which

which sort
Run Code Online (Sandbox Code Playgroud)

给你(例如):

/usr/bin/sort
Run Code Online (Sandbox Code Playgroud)

这也有助于您解决 PATH 的问题,例如,如果您安装了同一个二进制文件的多个版本,但您不知道调用的是哪个版本。

因此,如果您有多个版本,则可以使用-a开关:

charon:~ werner$ which -a ruby
/Users/werner/.rvm/rubies/ruby-1.9.2-head/bin/ruby
/Users/werner/.rvm/bin/ruby
/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)


jll*_*gre 4

我建议使用type command. which command只查看 PATH,因此可能会误导内置函数(如 pwd)、函数和别名。