grep/file masks

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
< grep
Revision as of 17:58, 19 June 2022 by Woozle (talk | contribs)
Jump to navigation Jump to search

About

grep does not effectively support recursive searching with anything but a wide-open file mask ("*"). In other words, e.g. «grep -r [text_to_find] *.log» will not (in most contexts, including those where it's most likely to be used e.g. searching inside «/var/log», because it will skip folders that don't also match the filemask -- i.e. it will only search in folders that end in «.log».

This is because grep does not do its own file-filtering but relies entirely on the command line environment to translate file-mask specifications into a list of files, which are then each passed to grep as a separate argument. This is a feature/defect of bash and possibly most other Linux command shells (investigation needed).

In short, grep does not have the ability to search recursively using a file-mask, and any mask entered:

  • will apply only to the current folder
  • will prevent grep from recursively searching any folders whose names do not also match

Links