【问题标题】:How to create alias in Mac Terminal? [closed]如何在 Mac 终端中创建别名? [关闭]
【发布时间】:2021-09-08 01:21:31
【问题描述】:

每次我输入cd foldercd .. 时,我都希望它在之后立即运行ls

有没有办法做到这一点?

【问题讨论】:

  • 我建议使用一个函数。
  • @airbornesnow:正如你所写的,这个问题没有意义。别名不绑定到终端,而是绑定到shell。此外,您不清楚您使用的是哪个 shell,因为您将问题标记为 zshbash

标签: macos zsh alias ls cd


【解决方案1】:

我强烈建议不要覆盖 cd 本身,但基本上你想做的是:

alias cdl='cd $*; ls'

这里cdl 是您的新命令的名称(如果您真的坚持,也可以是cd)然后您将其分配给另一个命令,该命令本身就是两个命令的序列:

  • cd $* 其中$* 是指您传递给cdl 的所有参数
  • ls 您可以将ls 的执行作为cd 成功的条件,即仅在cd 被赋予有效文件夹时运行它,否则什么也不做:
alias cdl='cd $* && ls'

更新

@Cyrus,你是对的,这在别名中不起作用(尽管如果你直接从命令行运行它就起作用)。这虽然有效:

alias cdl='ls $*; cd $*'

【讨论】:

  • 这不是预期的事情。它切换到~,然后列出$*
  • 我收回了。这实际上似乎不起作用。由于某种原因,它总是切换到我的主目录。
  • 新版本有效,@Cyrus - 所以看起来别名毕竟可以带参数
  • 这会列出当前目录,然后 cd 到 $*。
【解决方案2】:

转发another post的答案

把这个放在 .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
}

【讨论】:

    猜你喜欢
    • 2012-03-07
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2012-11-22
    • 2018-11-08
    • 2019-06-15
    • 1970-01-01
    相关资源
    最近更新 更多