Я знаю только два пути: alias foo=barи function foo() { bar }.
Причина, по которой я спрашиваю, заключается в том, что - внезапно в одной из моих сессий bash - я не могу выполнить lnкоманду, потому что bashпроисходит ошибка -bash: /usr/local/.../ln: No such file or directory(где /usr/local/.../- одна из записей в моей PATHпеременной среды).
Это не PATHпроблема, потому что, если я запускаю, which lnон выводит ожидаемый двоичный файл /usr/bin/ln(который я могу запустить нормально, если я укажу абсолютный путь).
Я также проверил lnв моих aliasи functionдекларациях, и там ничего нет:
$ declare -f | grep ln
$ alias | grep ln
Проблема только происходит в одной сессии bash. Если я запускаю новую оболочку, она снова работает нормально, но я хочу знать, что вызвало эту проблему внезапно в этой конкретной сессии bash.
Любые идеи относительно того, что может быть причиной этого?
type lnя получаю,ln is hashed (/usr/local/.../ln)что, кажется, является проблемой, но что это означает именно, что это "хешируется"? Я никогда не слышал об этой функции в Bash.