Em man grep
:
--exclude=GLOB
Skip files whose base name matches GLOB (using wildcard
matching). A file-name glob can use *, ?, and [...] as
wildcards, and \ to quote a wildcard or backslash character
literally.
Portanto:
grep -ri "my_str" ./ >> opt_file.txt --exclude=opt_file.txt
Embora eu apenas mantenha o arquivo em outro lugar para evitar complicações em que um arquivo semelhante também existe em um subdiretório:
grep -ri "my_str" ./ >> ../opt_file.txt
grep -ri "my_str" ./ >> /tmp/opt_file.txt