如何在 zsh 中创建一个调用同名现有命令的函数?

And*_*ier 11 zsh function

如何编写一个函数zsh来调用与函数本身同名的现有命令?例如,我试过这个来说明我的问题:

function ls 
{
    ls -l $1 $2 $3
}
Run Code Online (Sandbox Code Playgroud)

当我执行它时,ls *我得到以下信息:

ls:1: maximum nested function level reached
Run Code Online (Sandbox Code Playgroud)

我认为这是因为该函数被递归调用。我怎样才能避免这种情况?

这是一个粗略的示例,在这种情况下,别名可以完成这项工作,但我有一个更复杂的示例,其中别名不合适,因此我需要编写一个函数。

jor*_*anm 26

发生的事情是您递归调用您的ls函数。为了使用二进制文件,您可以使用 ZSH 的command内置文件。

function ls {
    command ls -l "$@"
}
Run Code Online (Sandbox Code Playgroud)