Назад | Перейти на главную страницу

Как запретить голому bash cd (команда смены каталога) изменить рабочий каталог на $ HOME?

Я делаю это слишком часто:

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

Жестяная банка cd по умолчанию $ HOME отключить?

Я могу придумать два варианта:

  • вы можете написать alias по умолчанию cd без аргументов ни к чему. Это относится к использованию таких утилит, как cdargs или apparix. Лично я использовал этот cd замена довольно давно.

  • патч bash вести себя иначе (bash-4.2/builtins/cd.def). Не уверен, что изменение этого значения по умолчанию нарушает другие вещи.


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     }

В bash, если вы случайно перешли не в тот каталог, вы можете вернуться в предыдущий каталог с помощью:

cd $OLDPWD

Этот псевдоним, кажется, делает это:

псевдоним cd = 'HOME = cd'

Я не считать у него есть опасные побочные эффекты ...