Como alterar o caminho que vem com a saída de qual comando?

1

Quando eu which mex no sistema linux dá um caminho mas eu quero mudar este caminho para outro. Como posso definir esse caminho padrão para outro local?

    
por erogol 26.08.2013 / 12:05

1 resposta

3

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:

  1. /usr/local/bin/foo
  2. /usr/bin/foo
  3. /bin/foo
  4. /usr/local/games/foo
  5. /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.

    
por 26.08.2013 / 13:39