grep だけで (find なしで) 実行できます。
grep -riL "somestring" .
grep
で使用するパラメータの説明です
-L, --files-without-match
each file processed.
-R, -r, --recursive
Recursively search subdirectories listed.
-i, --ignore-case
Perform case insensitive matching.
l
を使用する場合 小文字の場合は逆になります (一致するファイル)
-l, --files-with-matches
Only the names of files containing selected lines are written
あなたが引用したコマンドは、皮肉なことに、あなたが説明したことを正確に実行します.テストしてください!
echo "hello" > a
echo "bye" > b
grep -iL BYE a b
-L と -l を混同していると思います
find . -print | xargs grep -iL "somestring"
は の逆
find . -print | xargs grep -il "somestring"
ところで、考えてみてください
find . -print0 | xargs -0 grep -iL "somestring"
または
grep -IRiL "somestring" .