シェルスクリプトでワイルドカードを引数にとりたい

やりかたがわからん。

$ zargs -- **/* -- grep hoge

(僕はこれackでやるからこのコマンドの必要性はあんまないんだけど)
でここの**/*とhogeを引数にとるようなfunctionにしたいんだけど**/*は展開されて渡るからうまくいかない。

こうしたい。けどワイルドカードが展開される。

$ foo **/* hoge

こうやった。

function foo() {
  WARD=$1
  shift
  zargs -- $* -- grep $WARD
}

これで

$ foo hoge **/*

でいける。

ワイルドカードをうまく渡せる方法あるのかな。