Вот гипотетическая ситуация.... Существует два двоичных файла с тем же именем. Позволяет называют их charles. Один charles находится в/usr/bin/каталоге, и другой charles находится в ~/bin/. Предположение, что ~/bin/включен в путь выполнения, какой charles будет выполняться, когда команду charles назовут?
Если выпущено просто команда это будет то, которое найдено первым в Вашем $PATH
. Если Вы делаете
echo $PATH
Вы получаете путь, который используется для нахождения исполняемого файла...
/usr/local/sbin:/usr/local/bin:/usr/sbin:
/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Если ~/bin/
/usr/bin/
тот в ~/bin/
используется;/usr/bin/
тот в /usr/bin/
используется;Дополнительное исключение:
Если Вы находитесь в ~/bin/
каталог и делает ./charles
тот в ~/bin/
будет выполняться.
Это действительно зависит от того, где/usr/bin и / мусорное ведро и ~ / мусорное ведро находятся в экспортируемой переменной ПУТИ.
EX:
PATH=/usr/bin:/bin:~/bin
-----> charles will be found in /usr/bin and used from there
PATH=~/bin:/usr/bin:/bin
-----> in this case charles will be found first in the users' bin
and used from there