如何阻止裸 bash cd(更改目录命令)将工作目录更改为 $HOME?

如何阻止裸 bash cd(更改目录命令)将工作目录更改为 $HOME?

我经常这样做:

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

可以cd禁用默认为 $HOME 吗?

答案1

我能想到的两个选择:

  • 你可以将不带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     }

答案2

在 bash 中,如果你不小心更改到了错误的目录,你可以使用以下命令返回到上一个目录:

cd $OLDPWD

答案3

这个别名似乎可以做到这一点:

别名 cd='HOME= cd'

我不思考它有任何危险的副作用......

相关内容