Comment puis-je créer une fonction dans zsh qui appelle une command existante portant le même nom?

Comment puis-je écrire une fonction dans zsh qui invoque une command existante portant le même nom que la fonction elle-même? Par exemple, j'ai essayé ceci pour illustrer ma question:

function ls { ls -l $1 $2 $3 } 

Mais je vois ceci quand je l'exécute avec ls * :

 ls:1: maximum nested function level reached 

Je suppose que c'est parce que la fonction est appelée récursivement. Comment je peux éviter cela?

(c'est un exemple grossier, et dans ce cas un alias ferait le travail, mais j'ai un exemple plus complexe où un alias ne convient pas et donc j'ai besoin d'écrire une fonction).

Ce qui se passe est que vous appelez récursivement votre fonction ls . Pour utiliser le binary, vous pouvez utiliser la command embeddede de ZSH.

 function ls { command ls -l "$@" } 

Essayez d'aliasing ( .zshrc ): alias l="ls -l $1 $2 $3"