В Windows есть хороший механизм поиска файлов, который называется « Все» , который (в отличие от find
) очень быстрый и (в отличие от него locate
) всегда возвращает обновленные результаты. AFAIK это работает, заполняя базу данных из журнала NTFS (это не работает с другими файловыми системами).
Интересно, есть ли что-то подобное (меня не волнует GUI; моя точка зрения - скорость и современная гарантия) для Linux (ext3 или ext4); Я гуглил, но ничего не нашел. Может ли что-то подобное быть сделано или даже кто-то работает над этим?
filesystems
search
journaling
maaartinus
источник
источник
Ответы:
Вы можете взглянуть на rlocate , повторную реализацию locate, которая всегда актуальна. Еще один интересный проект - recoll, который также поддерживает индексирование в реальном времени и позволяет (как и beagle) дополнительно выполнять полнотекстовый поиск. Наконец, я должен упомянуть каракули, который также поддерживает индексирование в реальном времени. Для каракули есть некоторые хорошие интерфейсы, такие как сом .
Обратите внимание, что вы также можете сделать (r) поиск результатов кликабельным, используя, например, urxvt в качестве терминала-эмулятора и написав что-то вроде
(и выполняет
xrdb -load ~/.Xdefaults
потом)источник
rlocate
Сам уже дает полный ответ.Show in File Manager
20 раз../configure
мне говорят, что я должен «установить пакет с полными исходными кодами ядра». Этот инструмент кажется недоступным для не-гуру.Я также искал инструмент «Search Everything» для linux и обнаружил «Search Monkey» в репозитории Ubuntu. ЛЮБИТЬ ЭТО!
Он легкий, быстро загружается, поиск по шаблону мгновенно дает массу результатов, плюс есть фильтры и расширенные методы поиска.
Теперь у меня есть инструмент поиска "Все" для Linux!
источник
Интересная идея для реализации этого коренится в файловой системе, но ничего такого не существует, насколько мне известно. Помимо нескольких надстроек, пытающихся проникнуть достаточно глубоко в верхние слои fs, чтобы получить данные на раннем этапе (Обновление: все относится к этой категории), я боюсь, что вы ограничены менее удовлетворительными процессами регулярная индексация.
Что может быть ближе всего к тому, что вы ищете, так это виртуальная файловая система libferris.
В мире индексирования вы можете взглянуть на glimpse , который, по крайней мере, способен обновлять и добавлять свой индекс.
Обновление: я только что прочитал материал о «Все», и, похоже, он тоже не присущ FS, поэтому libferris не так уж далек, плюс он также позволяет индексировать контент, а не только имена файлов. Это удовлетворяет вашу потребность быть в курсе всех событий.
источник
Вы можете использовать
locate
команду, и если вы хотите обновить свою базу данных, выполните следующую команду:Эта команда обновляет базу данных locate за несколько секунд
источник
Вы проверили Злой Поиск . Он заявляет в своем описании, что это так же, как все. FSearch также утверждает, что то же самое.
источник
Должно быть возможно построить что-то подобное в несколько строк кода с использованием inotify (есть также пакет inotify-tools, который позволит вам реализовать это с помощью сценариев оболочки).
(Я был бы очень удивлен, что любой такой инструмент будет извлечен из журнала - скорее всего, он реализован на уровне виртуальной файловой системы)
источник
inotify
может быть полезным здесь, поскольку это не рекурсивно. Создать часы для всего дерева просто, но может ли ядро обрабатывать многие десятки тысяч из них? Даже если это возможно, это не выглядит эффективным способом для меня.Вы можете попробовать бигль . К сожалению, http://www.beagle-project.org сейчас является припаркованным доменом - википедия.
источник
btrfs
реализовалfind-new
команду против подразделов в течение многих лет. Если вы сохраняете относительно современное дерево снимков, его можно использовать для атомарного наблюдения за изменениями файловой системы без особых усилий.Вы бы использовали это как:
Вы можете получить gen-id, который вам нужен для сравнения, с помощью той же команды, но с использованием фиктивного gen-id. Здесь больше информации .
источник
Интерфейс пользовательского интерфейса для команды locate, которая работает почти так же, как и все:
https://github.com/AlexTuduran/Locator/releases
источник
locate
никогда не обновляется автоматически.locate
использует тот же принцип, за исключением того, что база данных не обновляется автоматически . Вlocate
пакет входитcron
задача, которая автоматически обновляет базу данных.Я использую Angry Search на Raspberry Pi 3 B + под управлением Stretch, и он работает нормально. Это действительно довольно быстро, как поиск по всем окнам. Очень приятно иметь возможность быстро находить файлы.
источник