在Linux中,如何获取我正在使用的命令的完整路径?

10

如何获取我所使用命令的完整路径?

比如,我已经安装了jdk到/opt/Oracle/jdk1.7.0_25,而我的PATH看起来是这样的:

/opt/Oracle/jdk1.7.0_25/bin/:/usr/lib/x86_64-linux-gnu/qt4/bin:/home/unimous/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games. 

我想从java中获取/opt/Oracle/jdk1.7.0_25/bin/java

4个回答

16
which java

应该给你完整的路径。

这对于Linux中的任何其他命令也适用,只需使用which command_name即可。


0
这取决于你的发行版,在 Debian 及基于 Debian 的发行版中,你有 update-alternatives。
而对于你的 Java,例如: update-alternatives --install "/usr/bin/java" "java" "/opt/Oracle/jdk1.7.0_25/bin/java" 3
Help section on update-alternatives 

update-alternatives: --install needs <link> <name> <path> <priority>

Usage: update-alternatives [<option> ...] <command>

Commands:
  --install <link> <name> <path> <priority>
    [--slave <link> <name> <path>] ...
                           add a group of alternatives to the system.
  --remove <name> <path>   remove <path> from the <name> group alternative.
  --remove-all <name>      remove <name> group from the alternatives system.
  --auto <name>            switch the master link <name> to automatic mode.
  --display <name>         display information about the <name> group.
  --query <name>           machine parseable version of --display <name>.
  --list <name>            display all targets of the <name> group.
  --get-selections         list master alternative names and their status.
  --set-selections         read alternative status from standard input.
  --config <name>          show alternatives for the <name> group and ask the
                           user to select which one to use.
  --set <name> <path>      set <path> as alternative for <name>.
  --all                    call --config on all alternatives.

<link> is the symlink pointing to /etc/alternatives/<name>.
  (e.g. /usr/bin/pager)
<name> is the master name for this link group.
  (e.g. pager)
<path> is the location of one of the alternative target files.
  (e.g. /usr/bin/less)
<priority> is an integer; options with higher numbers have higher priority in
  automatic mode.

Options:
  --altdir <directory>     change the alternatives directory.
  --admindir <directory>   change the administrative directory.
  --log <file>             change the log file.
  --force                  allow replacing files with alternative links.
  --skip-auto              skip prompt for alternatives correctly configured
                           in automatic mode (relevant for --config only)
  --verbose                verbose operation, more output.
  --quiet                  quiet operation, minimal output.
  --help                   show this help message.
  --version                show the version.

0
如果你在使用bash:
type java

type 是一个内置的关键字,通常是一个单独的可执行文件:

$ type type
type is a shell builtin
$ type which
which is hashed (/usr/bin/which)

0

不要使用which命令,而是使用type命令。which命令只会给出第一个命令所在的路径。而type命令加上-a选项则会给出所有路径,包括别名:

type -a java

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接