I am trying to find all files in my directory, which contain the string <3.  Doing this should be simple:grep <3 *However, running this printsgrep: <3: No such file or directoryand then proceeds to grep all files for something else...  (I'm not sure what exactly, but lines show up containing no 3's at all...)CAUSE: apparently there was a file -f in my directory, and when it's getting passed into grep with the *, grep is treating it as a flag, causing this behaviour.Trying to delete this file normally also doesn't work, since rm treats it as a flag as well. Thanks to a suggestion from Nick, this file can be removed withrm ./-f
Why does grep not work?
grep
grep <3 -- *With -- you can determine the end of the options and the beginning of the positional arguments for many GNU programs. Thus a file -l does not cause any harm.An alternative isgrep <3 ./*