Чи є пошукова система файлів типу "Все" в Linux?


46

У Windows є приємна пошукова система файлів під назвою Все , що (на відміну від find) дуже швидко і (на відміну від locate) завжди повертає актуальні результати. AFAIK працює, заповнюючи базу даних із журналу NTFS (він не працює з іншими файловими системами).

Цікаво, чи є щось подібне (мене не цікавить графічний інтерфейс; моя думка - швидкість та актуальна гарантія) для Linux (ext3 або ext4); Я гуглив, але нічого не знайшов. Чи можна щось подібне зробити чи навіть хтось над цим працює?


2
Що мені подобається у всьому, це те, що воно не тільки є миттєвим, але й працює для декількох розділів, як багатозавантажувальні системи з шістьма установками вікон плюс кілька розділів даних. Я хотів би здійснити пошук в Linux, який буде працювати в декількох розділах Linux, а не тільки в одному розділі.
Арк Парсонс

Існує багато варіантів пошуку (mlocate, slocate, rlocate, ....), які мають власну характеристику (інкрементальне оновленняb, індексація в реальному часі або безпечне індексування, ...). Усі дуже настроюються (сторінки оновленого файлу updateb.conf та locate)
Ману H,

Відповіді:


30

Можливо, ви подивитесь на місцеперебування , повторне здійснення місця розташування, яке завжди актуальне. Ще один цікавий проект - це перемотка, яка також підтримує індексацію в реальному часі і дозволяє вам (як бигль) додатково здійснювати пошук у повнотекстовому пошуку. Наостанок слід згадати каракулі, яка також підтримує індексацію в реальному часі. Для каракулі є кілька приємних фронталів, як сом .

Зауважте, що ви також можете зробити (r) пошук результатів, які можна натискати, використовуючи, наприклад, urxvt як термінальний емулятор і написавши щось на зразок

URxvt.perl-ext: default,matcher URxvt.urlLauncher: /usr/bin/gnome-open     
URxvt.matcher.button: 1 URxvt.matcher.pattern.1: /.*

(і виконувати xrdb -load ~/.Xdefaultsпісля цього)


1
Я думаю, що цю відповідь слід прийняти. rlocateсама вже дає повну відповідь.
phunehehe

4
Що сталося в 2017 році? Рлокація згадує Linux 2.6 та відсутність пакету Ubuntu 16.04. віддача здається цікавою та оновленою, хоча надмірна для моєї потреби. doodle має пакет Ubuntu станом на 16.04, тому це може бути варіант.
Стефан Гурішон

Чому відбувається перезапуск надлишкової кількості, ви також можете запустити скидання з командного рядка. Він також добре поєднується з kde та єдністю, якщо хочете.
студент

Моя найбільша проблема із сомом - неможливість взаємодії з файлами - якщо я хочу скопіювати 20 файлів з результатів пошуку, мені потрібно Show in File Manager20 разів.
Аннан

Документація rlocate містить перелік вимог "Конфігурація ядра", з якими я не знаю, як відповідати, і якщо я знімаю її, і запускаю, ./configureмені кажуть, що я повинен "встановити пакет з повними джерелами ядра". Цей інструмент, здається, недоступний для не-гуру.
Qwertie

7

Я також шукав інструмент «Пошук у всьому» для Linux і виявив «Пошук мавпи» у сховищі Ubuntu. ЛЮБИТИ ЇЇ!

Це невелика вага, швидкий завантаження, пошук дикої картки дає миттєві результати, плюс фільтри та розширені методи пошуку.

Тепер у мене є інструмент пошуку "Все" для Linux!


Посилання перерване
Кріс Невілл

4

Цікава ідея реалізувати це корінням у файловій системі, але нічого подібного не існує, як мені відомо. Окрім кількох доповнень, які намагаються закопатись досить глибоко у верхні шари fs, щоб отримати раннє утримання даних (оновлення: все потрапляє саме в цю категорію), боюся, ви обмежені менш задовольняючими процесами регулярна індексація.

Що може бути найближчим до того, що ви шукаєте, може бути віртуальна файлова система libferris.

В індексації світу, ви можете захотіти поглянути на проблиск , який по крайней мере , здатний оновлювати і додавати його індекс.

Оновлення: я просто читав матеріали про "Все", і, здається, це не властиво і FS, тому libferris не так вже й далеко, плюс він також дозволяє індексувати вміст, а не лише назви файлів. Це задовольняє вашу потребу бути оновленим у будь-який час.


Список розсилки чорного дерева розсипався з 2007 року і не продовжується після 2010 року. Є сховище github, яке не було активним у період з 2016 по березень 2017 року github.com/monkeyiq/ferris/commiss/master . Можливо, це триває.
Стефан Гурішон

2

Ви можете використовувати locateкоманду, і якщо ви хочете оновити її базу даних, виконайте таку команду:

# updatedb

Ця команда оновить базу даних локалізації за кілька секунд


реалізація інтерактивного зразка: github.com/phil294/linux-locate-everything
phil294

2

Ви перевірили Злий пошук . У своєму описі воно стверджує, що воно як все. FSearch також стверджує те саме.


1
З огляду на те, скільки результатів пошуку ви вказуєте на FSearch, коли ви переглядаєте альтернативу Google для Evernote для Linux, я здивований, що ви єдиний, хто розмістив її тут.
Ghos3t

1

Слід створити щось подібне в декількох рядках коду, використовуючи inotify (є також пакет inotify-tools, який дозволив би реалізувати це за допомогою скриптів оболонки).

(Я би дуже здивований, що будь-який подібний інструмент буде запускатися з журналу - швидше за все, він буде реалізований у віртуальному рівні файлової системи)


1
Я не впевнений, чи inotifyможе це бути корисним тут, оскільки це не рекурсивно. Створити годинник для всього дерева просто, але чи може ядро ​​обробляти багато десятків тисяч з них? Навіть якщо це може, це для мене не виглядає як ефективний спосіб.
maaartinus


1

btrfsfind-newвпродовж років реалізує команду проти підтомників. Якщо ви зберігаєте відносно сучасне дерево знімків, воно може використовуватися для атомного перегляду файлової системи за всіма змінами з невеликою суєтою.

Ви б використовували його так:

btrfs sub find-new /chk/path [gen-id]

Ви можете отримати gen-id, який вам потрібен для порівняння з тією ж командою, але використовуючи помилковий gen-id. Існує більше інформації тут .


1

Фронтальний інтерфейс для команди locate, який працює майже так само, як і Все:

https://github.com/AlexTuduran/Locator/releases


1
Схоже, це побудовано на помилковій умові, яка locateніколи не оновлюється автоматично.
roaima

Будь ласка, розвивайте. Що ви маєте на увазі під значком пошуку, який оновлюється?
Алекс Тудуран

У вашому проекті GitHub зазначено, що команда Unix locateвикористовує той же принцип, за винятком того, що база даних не оновлюється автоматично . locateПакет включає в себе cronзавдання , яка робить автоматичне оновлення бази даних.
roaima

Якщо це правда, то це лише допомагає меті інструменту. Оновлення бази даних автоматично відвантажує користувача від виконання іншого завдання. Користувач все ще може явно оновлювати базу даних, якщо потребує негайного оновлення. Або яка тут турбота щодо помилкових передумов?
Алекс Тудуран

1

Я використовую Angry Search на Raspberry Pi 3 B +, що працює на Stretch, і він працює чудово. Це дійсно досить швидко, як і пошук у всьому Windows. Дуже приємно вміти так швидко знаходити файли.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.