日本語でサブディレクトリを含めてgrep

最初、

grep -sl ~/Mail -r "日本語"

としたら漢字コードが違うので見つからなかった。次に、

find ~/Mail -type f -exec 'nkf -e {} | grep -l "日本語"'

としたら、'nkf -e {} | grep -l "日本語"'の部分が1個のコマンドとして渡されてしまうようでエラーになる。xargsでも同様。findの-execにパイプを含むコマンドを渡すのってどうやるんだろう?最終的には、次のコマンドでうまくいった。

for f in `find ~/Mail -type f`; do nkf -e $f | grep -l "日本語" > /dev/null && echo $f; done

もはやコマンドというよりプログラムだ。