Мне нужна простая утилита unix, которая позволила бы мне быстро искать в файлах с основными параметрами (эта папка, а не такие файлы ...).
В настоящее время я использую созданную вручную функцию поиска с grep и множеством параметров. Это достаточно быстро для небольших папок. Проблема в том, что я в основном работаю с одной папкой, которая содержит около 300 тысяч файлов, и это слишком медленно.
Я ищу небольшой инструмент, который по запросу индексировал бы содержимое файлов в этом каталоге (текстовые файлы) и позволял бы мне искать в этом индексе (и, конечно, отображать относительное содержимое).
Я ищу Агент обыск для unix-систем в CLI.
Хотелось бы, чтобы по возможности не пришлось много устанавливать. Сфинкс например, это слишком сложно, мне нужна легкая альтернатива.
Спасибо за ваши предложения.
locate
(или аналогичные) поставляется со многими системами Linux. Он ежедневно сканирует файловую систему, поэтому, если вы не ищете решение в реальном времени, этот инструмент может быть для вас.
Моя рабочая станция Fedora и серверы CentOS поставляются с mlocate, но есть и несколько других вкусов.
Прежде чем вы собираетесь настраивать что-то более сложное, я должен спросить, пробовали ли вы уже ack
. Это как grep
но предназначен для устранения его недостатков; ack автоматически ищет только текстовые файлы и пропускает двоичные файлы и так далее.
Видеть ack домашняя страница (если он запущен и работает, сейчас это не работает для меня) или установите его через диспетчер пакетов, если он доступен в вашем дистрибутиве, и дайте ему крутиться.
Кажется, что какая-то версия домашней страницы подтверждена в Кеш Google, слишком.
Это зависит от того, сколько времени соответствует «слишком много хлопот», поскольку вы либо будете искать решение для среды выполнения, либо что-то, что будет добывать каждый файл и создавать базу данных на основе ответов.
ack-grep
, как предлагает Янне Пиккарайинед, выглядит полезным инструментом в первой категории.
tracker
(см. сайт) стоит рассматривать как необязательно глобальный поиск на рабочем столе с инструментами cli, но имеет странный синтаксис запросов (по крайней мере, на мой взгляд); например
$> tracker-sparql -q "SELECT nie:url(?f) WHERE { ?f fts:match 'red OR blue yellow' }"
recoll
похоже, что он может иметь более понятный синтаксис поиска и быть более настраиваемым, чем трекер. Однако инструмент CLI не построен по умолчанию. Интересно, что вы также можете создать Python api.
Эта статья о linux.com интересно.