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