如何更改哪个命令输出附带的路径?

如何更改哪个命令输出附带的路径?

当我which mex在 Linux 系统上时,它给出了一个路径,但我想将此路径更改为另一个路径。我如何将此默认路径设置为另一个位置?

答案1

在某个系统上我得到了这个输出:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

这意味着执行命令时

$ foo

shell 会寻找可执行文件按以下顺序排列文件:

  1. /usr/local/bin/foo
  2. /usr/bin/foo
  3. /bin/foo
  4. /usr/local/games/foo
  5. /usr/games/foo

并运行遇到的第一个。

which foo将返回第一个匹配的路径,如果目录foo中不存在名为的可执行文件,则不返回任何内容PATH(请注意which -a将返回全部按顺序匹配,而不仅仅是第一个)。

例如,您可以重新排列变量中的目录PATH以更改查找顺序,但这可能不是解决“真正”问题的方法。如果您在优先级较高的目录中有一个可执行文件“遮蔽”了所需的文件,则可以将第一个文件移开,或者直接使用其完整路径执行优先级较低的文件。


我认识到mex这是 Matlab 安装的一部分。试着猜测一下你想要做什么,也许你可以暂时修改PATH单个正在运行的进程,如下所示:

$ PATH=/home/user/myownexecs:$PATH matlab

您要优先处理的可执行文件的位置。这将暂时修改/home/user/myownexecs/mex进程的变量,但不会持久地干扰整个系统。mexPATHmatlab

你应该向问你什么真的想做以获得更合适的答案。

相关内容