Я хочу настроить функциональность cd
команды в соответствии с моими потребностями.
Я определил следующую функцию -
function cd () { cd "$@" && pushd "$@"; }
Цель этой функции - автоматически поместить каталог в стек, чтобы сэкономить время, необходимое для ввода вручную pushd .
каждый раз.
Однако указанная выше функция является бесконечно рекурсивной, так как вызов cd
интерпретируется как сама функция, а не как cd
встроенная.
Как мне ссылаться на cd
встроенную в эту функцию?
Я знаю, что псевдонимы можно избежать с помощью \
. Каким образом можно избегать функций или ссылаться на встроенные модули более явным образом?
Примечание. Я не хочу переименовывать свою функцию во что-либо еще.
pushd
не поддерживает -P
. Но вы правы, как показано в вопросе, function cd
выглядит немного неправильно, так как он дважды менял каталог.
alias cd=pushd
? Что вы ожидаете случиться, когда вы перейдете к чему-то, что не является абсолютным путем (например,cd ../
)?