Můžete to udělat pouze s grep (bez hledání).
grep -riL "somestring" .
Toto je vysvětlení parametrů použitých na grep
-L, --files-without-match
each file processed.
-R, -r, --recursive
Recursively search subdirectories listed.
-i, --ignore-case
Perform case insensitive matching.
Pokud používáte l
malými písmeny dostanete opak (soubory se shodami)
-l, --files-with-matches
Only the names of files containing selected lines are written
Příkaz, který citujete, ironicky dělá přesně to, co popisujete. Otestujte to!
echo "hello" > a
echo "bye" > b
grep -iL BYE a b
Říká pouze.
Myslím, že si možná pletete -L a -l
find . -print | xargs grep -iL "somestring"
je opak
find . -print | xargs grep -il "somestring"
Mimochodem, zvažte
find . -print0 | xargs -0 grep -iL "somestring"
Nebo dokonce
grep -IRiL "somestring" .