Как сказано в прекрасном руководстве, псевдонимы почти полностью вытеснены функциями. Функции могут делать почти все, что могут делать псевдонимы, и способны делать гораздо больше, поскольку они принимают аргументы, которые могут использоваться в произвольном порядке.
Чего функции не могут сделать, так это предотвратить раскрытие своих аргументов. Это означает, что единственной причиной использования псевдонима является установка вызова функции без расширения.
alias funny='set -f; _funny'
_funny(){ set +f ; do_something_with_unexpanded_args ;}
и теперь вы можете запустить funny *
и увидеть *
, а не список файлов в текущем каталоге.