Em um determinado sistema, recebo esta saída:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Isso significa que ao executar o comando
$ foo
o shell irá procurar por arquivos executáveis nesta ordem:
-
/usr/local/bin/foo
-
/usr/bin/foo
-
/bin/foo
-
/usr/local/games/foo
-
/usr/games/foo
e execute o primeiro encontrado.
which foo
retornaria o caminho da primeira dessas correspondências ou nada se um arquivo executável denominado foo
não existir nos diretórios PATH
(observe a opção which -a
que retornará todos corresponde em ordem, não apenas ao primeiro).
Você poderia, por exemplo reordene os diretórios na variável PATH
para alterar a ordem de pesquisa, mas isso provavelmente não é a solução para sua pergunta "real". Se você tem um arquivo executável em um diretório de prioridade mais alta, "sombreando" o arquivo desejado, você pode mover o primeiro para longe ou simplesmente executar o de menor prioridade com o caminho completo.
Eu reconheço o mex
como parte da instalação do Matlab. Tentando adivinhar o que você deseja fazer, talvez você possa modificar temporariamente o PATH
de um único processo em execução, como tal:
$ PATH=/home/user/myownexecs:$PATH matlab
em que /home/user/myownexecs/mex
é o executável mex
que você deseja dar precedência. Isso modificará temporariamente a variável PATH
do processo matlab
, mas não interferirá no sistema em geral de maneira duradoura.
Você deve esclarecer sua dúvida para perguntar o que você realmente quer fazer para obter respostas mais adequadas, no entanto.