Ограничить поиск мест в определенных каталогах

Есть ли способ ограничить вывод locate конкретными каталогами на Mac OS X Snow Leopard? Я читал об использовании regex на форуме Ubuntu. Тем не менее, на моем mac locate не принимается опция -r . Я также посмотрел на страницы руководства для поиска на Mac и нет опции -r .

Спасибо.

Просто используйте шаблоны оболочки в шаблоне поиска локатора – эта функциональность является исторической функцией утилиты и должна поддерживаться во всех системах.

Например:

 $ locate '*/dirname/*filename*' 

Не забудьте использовать звезды вокруг строки поиска (или, по крайней мере, перед ней), как только вы используете подстановочные знаки, locate переключатели логики и привяжите строку поиска к началу и концу искомого материала.

Я думаю, вам нужно установить другую версию локации. У меня нет системы OS X для проверки, но кажется, что slocate присутствует в macports, поэтому его довольно легко установить, и я думаю, что у него есть необходимый параметр.

mdfind этого попробуйте mdfind .

 $ mdfind -onlyin $HOME iTunes 

Утилиты md * используют ту же базу данных, что и Spotlight .

Вы можете попробовать смешать его с командой grep , например:

 locate hosts | grep ^/etc 

или:

 locate php | grep -e ^/etc -e ^/usr/local/etc 

для просмотра нескольких каталогов.

Если вы используете эту функцию очень часто, напишите обертку для нее.