Сколько различных способов вы можете создать «псевдоним» в Bash?

Я знаю только два способа: alias foo=bar и function foo() { bar } .

Причина, по которой я спрашиваю, заключается в том, что – внезапно в одной из моих сессий bash – я не могу запустить команду ln потому что bash выдает ошибку с помощью -bash: /usr/local/.../ln: No such file or directory (где /usr/local/.../ является одной из записей в моей PATH среды PATH ).

Это не проблема PATH хотя, потому что если я запустил, то which ln выведет ожидаемый двоичный файл /usr/bin/ln (который я могу нормально работать, если я укажу абсолютный путь).

Я также проверил ln в своих alias и объявлениях function , и нет ничего:

 $ declare -f | grep ln $ alias | grep ln 

Проблема возникает только в одном сеансе bash. Если я запустил новую оболочку, она снова работает отлично, но я хочу знать, что вызвало эту проблему внезапно в этой конкретной сессии bash.

Любые идеи относительно того, что может быть причиной этого?

Будьте осторожны при использовании команды. Лучше использовать команду type ...

 $ type ln ln is /bin/ln 

Вы также можете использовать команду whereis :

 $ whereis ln ln: /bin/ln /usr/share/man/man1p/ln.1p.gz /usr/share/man/man1/ln.1.gz