Простой, простой в использовании поиск по индексу файла CLI на Unix?

Мне нужна простая утилита Unix, которая позволила бы мне быстро выполнять поиск в файлах с основными параметрами (эта папка, а не файлы такого типа...).

В настоящее время я использую функцию поиска ручной работы с grep и многими параметрами. Это быстро достаточно на небольших папках. Проблема в том, что я в основном работаю с одной папкой, которая содержит около 300 тыс. Файлов, а потом она слишком медленная.

То, что я ищу, - это небольшой инструмент, который индексирует содержимое файлов в этом каталоге (текстовые файлы) по запросу и позволяет мне выполнять поиск в этом индексе (и, конечно, отображать относительное содержимое).

То, что я ищу, - это поиск агента для Unix-систем в CLI.

Я хотел бы, если возможно, не устанавливать много. Сфинкс, например, слишком хлопотный, мне нужна легкая альтернатива.

Спасибо за ваши предложения.

3 ответа

locate (или аналогичные) поставляется со многими системами Linux. Он сканирует файловую систему ежедневно, поэтому, если вы не ищете решение в реальном времени, это может быть инструментом для вас.

Моя рабочая станция Fedora и серверы CentOS поставляются с mlocate, но есть и несколько других вариантов.

Прежде чем вы собираетесь настроить что-то более сложное, я должен спросить, вы уже пробовали ack, Это как grep но предназначен для удовлетворения своих недостатков; ack автоматически ищет только текстовые файлы, пропускает двоичные файлы и так далее.

Зайдите на домашнюю страницу ack (если она запущена и работает, сейчас она мне не подходит) или установите ее через менеджер пакетов, если она есть в вашем дистрибутиве, и начните ее использовать.

Похоже, что некоторая версия домашней страницы ack также находится в кеше Google.

Это зависит от того, сколько времени приравнивается к "слишком большим трудностям", так как вы либо будете искать решение во время выполнения, либо что-то, что будет добывать каждый файл и создавать базу данных из ответов.

ack-grepПо предложению Janne Pikkaraiined выглядит полезным инструментом в первой категории.

tracker (см. веб-сайт) стоит рассматривать как не обязательно глобальный поиск на рабочем столе с помощью инструментов cli, но с более странным синтаксисом запросов (по крайней мере, на мой взгляд); например

$> tracker-sparql -q "SELECT nie:url(?f) WHERE { ?f fts:match 'red OR blue yellow' }"

recoll Похоже, он может иметь более понятный синтаксис поиска и быть более настраиваемым, чем трекер. Однако инструмент CLI не построен по умолчанию. Интересно, что вы также можете создать API Python.

Эта статья на linux.com интересна.

Другие вопросы по тегам