Но они все еще работают после source .bash_aliases.
У меня есть следующие строки в моем .bashrc:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Предполагается, что это эквивалентно типу source .bash_aliases, не так ли?
Из man [:
-f FILE
FILE exists and is a regular file
Поскольку вы создали ссылку .bash_aliases, этот тест не работает. Либо сделайте его обычным файлом, а не мягкой ссылкой или измените этот тест.