Есть в *nix системах замечательное понятие скрытых файлов и папок, это все те, имена, которых начинаются с . (точки). От кого же они скрыты? От lsи ВСЕ! И как же быть если и grep и find их видит? И так я хочу что бы по-честному grep не искал в скрытых файлах и в файлах, которые находтся в скрытых папках. Зачем мне это нужно: а есть у меня прокет - много-много папочек, целое деревце, и проект я забирала из svn и в каждой папочке имею подпапочку с именем .svn. Когда я ищу что-то по проекту, grep проходит и через них. таким образом дублирую как бы результать поиска - не удобно. особенно, если много. Кроме того у меня grep версии 2.5.чего-то там и у него нет ключа -exclude-dir.
И так сама я решение не нашла, хотя былда близка мне помогли :) , но что бы его не забыть ВОТ ОНО!
find где_искать -type f -not -path '*/.*' -exec grep -Hn что_искать '{}' \;
Но! у решения есть один недостаток файлы в коре "где_искать" он не обрабатывает. правда мне не критично. :)
-Hn - это что бы показывало путь к файлу и номер строки - нужно если искать в emacs.
Кто подскажет еще изящные способы решения проблемы :) буду благодарна.
«Долго мы искали, долго мы искали,
(обошли деревни, сёла, города)
мальчика, который любит чистить зубы
и девочку, которая не плачет никогда…»
«Долго мы искали, долго мы искали,
и вдруг мы отыскали без всякого труда,
девочку, которая любит чистить зубы,
и мальчика, который не плачет никогда».
(С) Олег Супруненко