Ответы:
Проверьте свой путь. Это не так сложно закончить с дубликатами в нем. Пример:
»echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:
»which -a bash
/bin/bash
/usr/bin/bash
Это потому, что мой / bin является символической ссылкой на / usr / bin. Сейчас же:
»export PATH=$PATH:/usr/bin
»echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/bin
»which -a bash
/bin/bash
/usr/bin/bash
/usr/bin/bash
Поскольку / usr / bin теперь находится в моем $ PATH дважды, which -a
находит один и тот же bash дважды.
Как подсказывает подсказка и цитируя со страницы справочника, "Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been executed when this argument
had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same
algorithm as bash(1)."
Что касается -a
опции, в ней перечислены все исполняемые файлы с таким именем, найденные в $ PATH.