A expansão variável é diferente no zsh e a do bash

A seguir, é apresentado um caso de teste simples para o que quero ilustra

In bash,

# define the function f
f () { ls $args; }

# Runs the command `ls`
f

# Runs the fommand `ls -a`
args="-a"
f

# Runs the command `ls -a -l`
args="-a -l"
f

Mas em zsh

# define the function f
f () { ls $args }

# Runs the command `ls`
f

# Runs the fommand `ls -a`
args="-a"
f

# I expect it to run `ls -a -l`, instead it gives me an error
args="-a -l"
f

A última linha no zsh acima, dá-me o seguinte erro

ls: invalid option -- ' '
Try `ls --help' for more information.

Acho que o zsh está executando

ls "-a -l"

quando é que recebo o mesmo erro.

Então, como obtenho o comportamento do bash aqui?

Não tenho certeza se sou claro, deixe-me saber se há algo que você deseja saber.

questionAnswers(1)

yourAnswerToTheQuestion