在 bash 中混淆 cd 的问题

Zee*_*Zee 2 bash alias

我正在为我的 .bashrc 文件添加几个别名,用于我经常使用的一些快捷方式,其中包括:

alias .="cd /;ls"
alias ..="cd ../;ls"
alias cd="cd $1;ls"
alias ls="clear;pwd;ls"
Run Code Online (Sandbox Code Playgroud)

有效的结果是,每当我导航到一个新目录时,窗口都会被清除并在顶部显示新目录及其内容。

除了 cd 别名之外,所有这些别名都有效。我尝试了多种尝试 cd 到新目录并在那里运行 ls 的组合,但似乎我只能列出目录的内容并返回到旧目录,或者成功 cd 到目录但使用生成的列表来自旧目录。

在 bash 中别名 cd (或任何带参数的命令)时,是否需要做一些特殊的事情?我觉得这是一个相对简单的任务,但我只是忽略了一些语法。

Mic*_*ker 10

别名没有参数,请尝试使用函数

cd() { builtin cd "$1" ; ls ; }
Run Code Online (Sandbox Code Playgroud)