Seu $PATH
é pesquisado sequencialmente. Por exemplo, se echo $PATH
mostrar /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
, cada um desses diretórios será pesquisado em sequência para um determinado comando (supondo que o comando não seja um alias ou um shell embutido).
Se você deseja substituir binários específicos por usuário (ou simplesmente não tem acesso à substituição para outros usuários além de você mesmo), recomendamos criar um diretório bin
em seu diretório inicial e, em seguida, prefixando sua variável PATH com esse diretório.
Assim:
$ cd ~
$ pwd
/home/joe
$ mkdir bin
$ echo "$PATH"
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
$ echo 'export PATH="$HOME/bin:$PATH"' >> .bash_profile
Em seguida, source .bash_profile
, para que a nova definição de PATH
tenha efeito (ou apenas efetue logout e login, ou reinicie seu emulador de terminal).
$ source .bash_profile
$ echo "$PATH"
/home/joe/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Agora, todos os arquivos executáveis que você colocar em /home/joe/bin/
terão precedência sobre os binários e executáveis do sistema.
Observe que, se você fizer o acesso ao sistema e as substituições se aplicarem a todos os usuários, o local preferido para colocar os executáveis será /usr/local/bin
, que é destinado a essa finalidade. Na verdade, muitas vezes /usr/local/bin
é já o primeiro diretório em $PATH
especificamente para permitir isso.