Я успешно использую find для создания списка всех файлов в текущем подкаталоге, за исключением файлов в подкаталоге «кеш». Вот мой первый фрагмент кода:
find. -wholename './cach*' -prune -o -print
Теперь я хочу передать это в команду grep. Кажется, это должно быть просто:
find. -wholename './cach*' -prune -o -print | xargs grep -r -R -i "samson"
... но это возвращает результаты, которые в основном из каталога кеша. Я попытался удалить ссылку xargs, но это делает то, что вы ожидаете, запускает grep для текста имен файлов, а не для самих файлов. Моя цель — найти «samson» в любых файлах, которые не являются кешированным содержимым.
Я, вероятно, обойду эту проблему, просто используя двойные greps в этом случае, но мне очень любопытно, почему этот лайнер -ведет себя таким образом. Я хотел бы услышать мысли о том, как изменить его, все еще используя эти две команды (, так как это дает преимущества в скорости ).
(Это в CentOS 5, кстати.)