每次我输入 cd folder
或 cd ..
时,我都希望它在之后立即运行 ls
。
有没有办法做到这一点?
把它放在 .zshrc 中为 cl 创建别名:
#print contents after moving to given directory
cl()
{
cd $@
ls
}
要覆盖 cd(不推荐),请将其放在 .zshrc 中:
#print contents after moving to given directory
cd()
{
builtin cd $@
ls
}
,
我强烈建议不要覆盖 cd
本身,但基本上您想做的是:
alias cdl='cd $*; ls'
这里的 cdl
是您的新命令的名称(如果您真的坚持,它也可以是 cd
)然后您将它分配给另一个命令,它本身是两个命令的序列:
cd $*
其中 $*
是指您传递给 cdl
的所有参数ls
您可以以 ls
的成功为条件来执行 cd
,即仅在为 cd
提供有效文件夹时才运行它,否则什么都不做:alias cdl='cd $* && ls'
更新
@Cyrus,您说得对,这在别名中不起作用(尽管如果您直接从命令行运行,则可以)。这虽然有效:
alias cdl='ls $*; cd $*'