FreeBSD - locate - быстрый поиск файлов: различия между версиями
Admin iph (обсуждение | вклад) (Новая страница: «'''locate - быстрый поиск файлов''' Команда locate позволяет искать файлы в индексированной базе...») |
Admin iph (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | [[Файл:Hot11.png|link=https://bit.ly/3tbFsd6| Самые выгодные сервера? в рунете ]] | ||
+ | |||
+ | |||
+ | |||
'''locate - быстрый поиск файлов''' | '''locate - быстрый поиск файлов''' | ||
Текущая версия на 21:08, 12 января 2016
locate - быстрый поиск файлов
Команда locate позволяет искать файлы в индексированной базе данных. Отличие от find - поиск происходит мгновенно
При первом запуске locate мы получим сообщение об ошибке:
# locate traceroute locate: database too small: /var/db/locate.database
Это значит, что БД по которой должен производиться поиск - не сформирована, либо давно не обновлялась:
# ls -l /var/db/locate.database -rw-r--r-- 1 nobody wheel 0 6 янв 2010 /var/db/locate.database
Обновление базы данных производится программой locate.updatedb - /usr/libexec/locate.updatedb. Однако запускать ее от рута - не стоит. В таком случае в БД попадёт вся информация о файловой системе. Запуск нужно производить через скрипт - /etc/periodic/weekly/310.locate, который выполняет запуск от пользователя nobody:
# /etc/periodic/weekly/310.locate
Обновление базы locate также осуществляется через демон cron и присутствует в списке задач periodic weekly(выполняется в суботу в 04:15)
# grep "periodic weekly" /etc/crontab 15 4 * * 6 root periodic weekly
Использование:
# locate crontab /etc/crontab /usr/bin/crontab /usr/obj/usr/src/usr.sbin/cron/crontab /usr/obj/usr/src/usr.sbin/cron/crontab/.depend /usr/obj/usr/src/usr.sbin/cron/crontab/crontab /usr/obj/usr/src/usr.sbin/cron/crontab/crontab.1.gz /usr/obj/usr/src/usr.sbin/cron/crontab/crontab.5.gz /usr/obj/usr/src/usr.sbin/cron/crontab/crontab.o /usr/ports/mail/courier/files/crontab.in /usr/ports/net-mgmt/ifgraph/files/crontab.in /usr/ports/net-mgmt/netdisco/files/patch-netdisco.crontab /usr/ports/sysutils/anacron/files/anacrontab.default /usr/ports/sysutils/fcron/files/fcrontab-operator /usr/ports/sysutils/fcron/files/fcrontab-root /usr/ports/www/campsite/files/crontab.in.in /usr/share/examples/etc/crontab /usr/share/man/cat1/crontab.1.gz /usr/share/man/cat5/crontab.5.gz /usr/share/man/man1/crontab.1.gz /usr/share/man/man5/crontab.5.gz /usr/src/etc/crontab /usr/src/usr.sbin/cron/crontab /usr/src/usr.sbin/cron/crontab/Makefile /usr/src/usr.sbin/cron/crontab/crontab.1 /usr/src/usr.sbin/cron/crontab/crontab.5 /usr/src/usr.sbin/cron/crontab/crontab.c
Подсчитать количество файлов в системе:
# locate / | wc -l 442394
Подсчитать количество файлов в системе c расширением .conf:
# locate "*.conf" | wc -l 774
Поиск, игнорируя регистр:
# locate -i /x11/xtrans
Особенности поиска locate:
Ищутся все файлы и каталоги в именах которых встречается подстрока заданная в качестве аргумента. Файлы выводятся включая полный путь к ним. Заданная подстрока вообще может не входить в имя самого файла, а встречаться в его пути