Чтобы получить полный путь к исполняемому файлу, который будет выполняться при вводе команды, использование которых
$ which bash
/bin/bash
Для поиска всех ваших путей (в том числе MANPATH) использовать WhereIs
$ whereis bash
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz
The whereis может быть полезно, если у вас есть исполняемые файлы с тем же именем в разных частях вашего пути, например, sysV shutdown (/ usr/sbin/shutdown) и остановка berkeley (/ usr/ucb/shutdown) в системах Solaris. which
сообщает, какой из них вы будете запускать по умолчанию, а whereis
предоставляет вам все возможности.
Если вы не получите ответ обратно, это означает, что это оболочка встроенной, а не исполняемый файл,
$ which while
$ whereis while
while:
однако, если он существует в виде встроенной команды оболочки И исполняемый файл, он будет возвращать путь исполняемому файлу, но будет запускаться встроенный, если не указан путь к исполняемому файлу.
$ which test
/usr/bin/test
$ whereis test
test: /usr/bin/test /usr/share/man/man1/test.1.gz
Это больше похоже на «* Вы опасны для кода?» « –
Для этого нет системного вызова. – jpalecek
Что делать, если у вас есть два исполняемых файла с одинаковым именем (и, возможно, одинаковое поведение) в двух разных каталогах? (У меня есть куча исполняемых файлов «a.out», распространяемых через мой жесткий диск) – pmg