Я успешно использую 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, кстати.)