Jacob Lerner wrote:
> When I'm grepping recursively starting from /etc or from /,
> I often observe 'grep -r -I' stuck. This happens when there is FIFO node
> under /etc. I believe grep is stuck trying to open FIFO "files". 
> (Might be also stuck opening device files (b/c nodes), I'm not sure.)
> 
> Does grep have a option to ignore all non-plainfiles (
> FIFOs(p), devices (b,c)) ? WHat if -I option can be aliased to ignore
> non-plainfiles ?

Yes, I know that grep has a --recusive option and some others.  But I
think that was a bad idea.  I recommend that you avoid them.  Better
to use find|xargs for a powerful combination that works with most of
the rest of the available tools on the system.

> My workaround is ugly, I do something like 'find /etc -type f | grep+ regex'
> where grep+ is a script which reads filenames from stdin and greps them.
> This is slow, though, but does avoid being stuck on non-plainfiles.

I don't know what is in grep+ to make it slow.  But the following
should be a fast solution.

  find /etc -type f -print0 | xargs -r0 grep -H PATTERN

Bob


Reply via email to