如果我将别名alias .="cd .."
添加到我的.bash_aliases文件(源自.bashrc),则会导致我创建的每个新shell都从/
开始。我猜这只是我不理解的一个基本问题。
有什么想法吗?
答案 0 :(得分:2)
.
是一个内置shell命令,相当于“source” - 它在当前shell中执行shell脚本,从而允许它定义变量,函数等。
此脚本中经常使用此.
命令来引入其他脚本的定义。当您将.
别名为其他内容时,您会覆盖标准定义,会破坏使用它的每个脚本。
请不要重新定义标准命令。
(PS实际上比这更复杂,因为别名只在交互式shell中有效,因此.
在交互式shell和非交互式shell中会做完全不同的事情。这对情况并没有帮助。 )
答案 1 :(得分:1)
.
指的是当前目录,而..
指的是dirs层次结构中的一个。
必须发生的是,在您的bashrc
中,您在此别名定义之后有一些.
,因此它会被调用,因此您将被移动到父目录。
所以:
/home/your_home
alias .="cd .."
。.
时找到了一些点.bashrc
。cd ..
,这会将您移至/home
。.
并且必须再次执行,将您从/home
移至/
。解决方案: