Como parar o bash bare cd (alterar o comando de diretório) de mudar o diretório de trabalho para $ HOME?

2

Eu faço isso com muita frequência:

$ pwd
/a/long/long/way/from/anywhere
$ cd # oops - meant to tab-complete something
/home/$USER

A cd em default para $ HOME pode ser desativada?

    
por wodow 04.05.2013 / 13:01

3 respostas

2

Duas opções que consigo pensar:

  • você pode escrever um alias no padrão cd sem argumentos para o que você quiser. Isso está na linha de usar utilitários como cdargs ou apparix . Pessoalmente, tenho usado esta cd substituição por um bom tempo.

  • patch bash se comportará de maneira diferente ( bash-4.2/builtins/cd.def ). Não tenho certeza se a alteração desse padrão quebra outras coisas.


228   if (list == 0)
229     {
230       /* 'cd' without arguments is equivalent to 'cd $HOME' */
231       dirname = get_string_value ("HOME");
232
233       if (dirname == 0)
234   {
235     builtin_error (_("HOME not set"));
236     return (EXECUTION_FAILURE);
237   }
238       lflag = 0;
239     }
    
por 04.05.2013 / 13:17
1

No bash, se você acidentalmente mudar para o diretório errado, você pode voltar para o diretório anterior com:

cd $OLDPWD
    
por 05.05.2013 / 03:04
0

Esse alias parece fazer isso:

alias cd='HOME= cd'

Eu não acho que tenha efeitos colaterais perigosos ...

    
por 05.05.2013 / 01:53