O shell auto-echoes porque o CDPATH é definido como uma variável de ambiente. Se você UNSET CDPATH, o comportamento padrão do CD aparecerá novamente.
Eu não sei quando isso começou a acontecer, mas agora, toda vez que eu cd para um diretório ecoa o caminho antes de mudar de diretório. Isso acontece quando eu faço login em um servidor, mas não acontece na minha máquina local. O servidor está executando o Linux. Minha máquina local está executando o Mac OS X.
Eu pesquisei no Google e olhei para a página de manual, mas não consegui encontrar nada. Meu .bashrc / .bash_profile não tem nada a ver com 'cd' (que eu conheço).
Como modifico esse "recurso"?
A resposta acima sugerindo desabilitar o CDPATH é provavelmente a melhor. No entanto, se você quiser que o CDPATH permaneça ativo enquanto cd
-ing você também pode usar em seus scripts algo como:
cd /path/to/wherever > /dev/null
Outra opção é substituir mais permanentemente o cd
com uma função bash. Eu encontrei algo assim eficaz quando colocado em seu arquivo ~/.profile
(ou similar):
function cd() {
if [ -z "$*" ]; then
destination=~
else
destination=$*
fi
builtin cd "${destination}" >/dev/null && ls
}
cd
sem argumentos para retornar ao seu diretório pessoal. >/dev/null
é responsável por engolir o nome da pasta que está sendo ecoado. (Esse eco do nome da pasta é o que quebra scripts que usam FOO=$(cd $SOMEVAR && pwd)
para salvar um caminho completo para uma variável.) ls
automático depois de alterar os diretórios. (Remova o && ls
para parar isso.) Tags bash