在 bash 中对 cd 进行别名处理时遇到问题

在 bash 中对 cd 进行别名处理时遇到问题

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

alias .="cd /;ls"
alias ..="cd ../;ls"
alias cd="cd $1;ls"
alias ls="clear;pwd;ls"

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

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

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

答案1

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

cd() { builtin cd "$1" ; ls ; }

相关内容