zsh에서 이름이 같은 기존 명령을 호출하는 함수를 어떻게 만들 수 있습니까? 명령을 호출하는

zsh함수 자체와 동일한 이름으로 기존 명령을 호출하는 함수를 작성하려면 어떻게 해야합니까? 예를 들어, 나는 내 질문을 설명하기 위해 이것을 시도했다.

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

내가 그것을 실행할 때 나는 ls *다음을 얻는다.

ls:1: maximum nested function level reached

함수가 재귀 적으로 호출되기 때문이라고 가정합니다. 어떻게 피할 수 있습니까?

이것은 조잡한 예 이며이 경우 별칭이 작업을 수행하지만 별칭이 적합하지 않은 더 복잡한 예제가 있으므로 함수를 작성해야합니다.



답변

일어나는 일은 재귀 적으로 ls함수를 호출한다는 것 입니다. 바이너리를 사용하기 위해 ZSH의 command내장을 사용할 수 있습니다 .

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