Recursive grepping
Sometimes you just need to grep recursively in a directory. If you’re using find $somedir -type f -exec grep $somestring {} \;, don’t:
Use xargs to avoid creating a bazillion grep processes:find $somedir -type f -print | xargs grep $somestring
But spaces in the output of find (i.e., spaces in filenames) will confuse xargs, so use -print0 and xargs -0 instead:find $somedir -type f -print0 | xargs -0 grep $somestring
Except that you can achieve the same effect with find, with \+:find $somedir -type f -exec grep $somestring {} \+
Or you can just use recursive grep:grep -r $somestring $somedir
except that find allows you to filter by file type, name, age, etc.