Проблема псевдонимов CD в Bash

Я добавляю пару псевдонимов в мой файл.bashrc для некоторых ярлыков, которые я часто использую, среди которых:

alias .="cd /;ls"
alias ..="cd ../;ls"
alias cd="cd $1;ls"
alias ls="clear;pwd;ls"

Эффективный результат заключается в том, что всякий раз, когда я перемещаюсь в новый каталог, окно очищается и отображает новый каталог и его содержимое вверху.

Все эти псевдонимы работают за исключением псевдонима cd. Я пробовал несколько комбинаций, пытаясь перейти в новый каталог и запустить там ls, но кажется, что я могу либо только перечислить содержимое каталога и вернуться в старый каталог, либо успешно перейти в каталог, но с сгенерированный список из старого каталога.

Есть ли что-то особенное, что нужно сделать, когда псевдоним cd (или любую команду с аргументами) в bash? Я чувствую, что это относительно простая задача, но я просто что-то упускаю из-за синтаксиса.

1 ответ

Решение

У псевдонимов нет параметров, вместо этого попробуйте использовать функцию

cd() { builtin cd "$1" ; ls ; }
Другие вопросы по тегам