Eu quero personalizar a funcionalidade de cd
comando conforme minhas necessidades.
Eu defini a seguinte função -
function cd () { cd "$@" && pushd "$@"; }
O objetivo desta função é enviar automaticamente o diretório para a pilha, para que me poupe o esforço de digitar manualmente pushd .
todas as vezes.
No entanto, a função acima é uma função infinitamente recursiva, pois a chamada para cd
é interpretada como sendo a própria função e não acd
incorporada.
Como faço para referenciar o cd
built-in nesta função?
Eu sei que aliases podem ser escapados usando \
. Qual é a maneira de escapar de funções ou fazer referência a built-ins de maneira mais explícita?
Nota: Não quero renomear minha função para mais nada.
pushd
não suporta -P
. Mas você está certo, como mostra a pergunta, function cd
parece um pouco errado, pois mudou de diretório duas vezes.
alias cd=pushd
? O que você espera que aconteça quando você acessa algo que não é um caminho absoluto (por exemplo,cd ../
)?