Настройка и работа в Linux



              

Использование locate - часть 2


Иногда требуется более точный поиск, когда нужно ограничить то место куда может входить заданная подстрока. Скажем если нам нужно найти только файлы и каталоги в название которых входит mpg123. В данном случае можно использовать шаблоны ?аля bash? (помните *, ?, [...]) или более продвинутый вариант использующий регулярные выражения. Я предпочитаю последний, как более мощный и продвинутый.

Для того чтобы сообщить locate что вы хотите использовать регулярные выражения, нужно указать форму locate -r. Так в нашем случае запрос будет выглядеть следующим образом:

$ locate -r "mpg123[^/]*$" /usr/doc/mpg123-0.59r /usr/man/man1/mpg123.1.gz /usr/bin/mpg123 $

Строка mpg123[^/]*$ - просит locate найти те файлы в которых после подстроки mpg123 могут быть ноль или более символов, кроме символа /, после чего идет конец строки. Таким образом из результата поиска исключаются строки вида /usr/doc/mpg123-0.59r/BUGS.

Еще одна полезная возможность - это форма вызова locate -i. Параметр -i говорит о том что нужно произвести нечувствительный к регистру поиск:

$ locate "/etc/dir" /usr/local/share/emacs/21.1/etc/dired-ref.ps /usr/local/share/emacs/21.1/etc/dired-ref.tex $ locate -i "/etc/dir" /usr/local/share/emacs/21.1/etc/dired-ref.ps /usr/local/share/emacs/21.1/etc/dired-ref.tex /etc/DIR_COLORS $




Содержание  Назад  Вперед