¿Cómo puedo crear una función en zsh que llame a un comando existente con el mismo nombre?

9

¿Cómo puedo escribir una función zshque invoque un comando existente con el mismo nombre que la función misma? Por ejemplo, he intentado esto para ilustrar mi pregunta:

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

Cuando lo ejecuto ls *me sale lo siguiente:

ls:1: maximum nested function level reached

Supongo que esto se debe a que la función se llama de forma recursiva. ¿Cómo puedo evitar eso?

Este es un ejemplo crudo, y en este caso un alias haría el trabajo, pero tengo un ejemplo más complejo en el que un alias no es adecuado, por lo que necesitaría escribir una función.

Andrew Ferrier
fuente

Respuestas:

25

Lo que está sucediendo es que estás llamando recursivamente a tu lsfunción. Para usar el binario, puede usar el commandincorporado de ZSH .

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