Czy w systemie Linux jest wyszukiwarka plików typu „Wszystko”?


46

W systemie Windows jest ładna wyszukiwarka plików o nazwie Everything , która jest (w przeciwieństwie do find) bardzo szybka i (w przeciwieństwie do locate) zawsze zwraca aktualne wyniki. AFAIK działa, wypełniając bazę danych z dziennika NTFS (nie działa z innymi systemami plików).

Zastanawiam się, czy jest coś podobnego (nie dbam o GUI; chodzi mi o szybkość i aktualną gwarancję) dla Linuksa (ext3 lub ext4); Poszukałem google, ale nic nie znalazłem. Czy można coś takiego zrobić, czy nawet ktoś nad tym pracuje?


2
Rzeczą, która podoba mi się w tym wszystkim, jest to, że jest nie tylko natychmiastowa, ale działa również na wielu partycjach, takich jak systemy z wieloma instalacjami z sześcioma instalacjami systemu Windows i kilkoma partycjami danych. Chciałbym mieć wyszukiwanie w systemie Linux, które będzie działać na wielu partycjach systemu Linux, a nie tylko na jednej partycji.
— Arch Parsons

Istnieje wiele wariantów lokalizacji (mlocate, slocate, rlocate, ...) z własnymi cechami (przyrostowa aktualizacjab, indeksowanie w czasie rzeczywistym lub bezpieczne, ...). Wszystkie są wysoce konfigurowalne (strony manuala updatedb.conf i zlokalizuj)
— Manu H

Odpowiedzi:


30

Możesz rzucić okiem na rlocate , ponowne wdrożenie locate, które jest zawsze aktualne. Kolejnym interesującym projektem jest przypominanie, które obsługuje również indeksowanie w czasie rzeczywistym i pozwala (podobnie jak beagle) na wyszukiwanie pełnotekstowe. Na koniec powinienem wspomnieć o doodle, które obsługuje także indeksowanie w czasie rzeczywistym. Na doodle jest kilka ładnych nakładek, takich jak sum .

Zauważ, że możesz także (r) zlokalizować wyniki klikalne, używając na przykład urxvt jako emulatora terminala i pisząc coś takiego

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

(i wykonywanie xrdb -load ~/.Xdefaultspóźniej)


1
Myślę, że ta odpowiedź powinna zostać zaakceptowana. rlocatesama odpowiedź jest już kompletna.
— phunehehe

4
Co słychać w 2017 roku? rlocate wspomina o Linuksie 2.6 i braku pakietu Ubuntu 16.04. przypominanie wydaje się interesujące i zaktualizowane, choć przesada w stosunku do moich potrzeb. doodle ma pakiet Ubuntu od 16.04, więc może być opcją.
— Stéphane Gourichon,

Dlaczego pamiętasz przesadę, możesz także uruchomić recoll z wiersza poleceń. Jeśli chcesz, integruje się również z KDE i jednością.
— student

Moim największym problemem z sumem jest niemożność interakcji z plikami - jeśli chcę skopiować 20 plików z wyników wyszukiwania, muszę to zrobić Show in File Manager20 razy.
— Annan

Dokumentacja rlocate zawiera listę wymagań dotyczących „konfiguracji jądra”, których nie wiem, jak je spełnić, a jeśli je rozwiążę i uruchomię ./configure, powiedziano mi, że muszę „zainstalować pakiet z pełnymi źródłami jądra”. To narzędzie wydaje się być poza zasięgiem guru.
— Qwertie

7

Szukałem również narzędzia „Przeszukaj wszystko” dla systemu Linux i odkryłem „Przeszukaj małpę” w repozytorium Ubuntu. KOCHAM TO!

Jest lekki, ładuje się szybko, wyszukiwanie wieloznaczne natychmiast generuje mnóstwo wyników, a także ma filtry i zaawansowane metody wyszukiwania.

Mam teraz moje narzędzie wyszukiwania „Wszystko” dla Linuxa!


Link jest zepsuty
— Chris Nevill

4

Ciekawy pomysł na wdrożenie tego zrootowanego systemu plików, ale o ile mi wiadomo, nic takiego nie istnieje. Oprócz kilku dodatków, które próbują zagłębić się wystarczająco głęboko w górne warstwy FS, aby uzyskać wczesne przechowywanie danych (aktualizacja: wszystko wchodzi w tę samą kategorię), obawiam się, że jesteś ograniczony do mniej satysfakcjonujących procesów regularne indeksowanie.

Najbliżej tego, czego szukasz, może być wirtualny system plików libferris.

W świecie indeksowania warto rzucić okiem , który przynajmniej potrafi aktualizować i dołączać swój indeks.

Aktualizacja: Właśnie przeczytałem rzeczy o „Wszystko” i nie wydaje się to być nieodłączne od FS, więc libferris nie jest tak daleko, a także pozwala na indeksowanie treści, a nie tylko nazw plików. Zaspokaja twoją potrzebę ciągłego aktualizowania.


Lista mailingowa Ferris wyschła od 2007 roku i nie kontynuuje się po 2010 roku. Istnieje repozytorium github, które nie było aktywne od mi-2016 do marca 2017 r . Github.com/monkeyiq/ferris/commits/master . Być może tak będzie dalej.
— Stéphane Gourichon,


2

Czy sprawdziłeś Angry Search . W swoim opisie twierdzi, że jest jak wszystko. FSearch również twierdzi, że to samo.


1
Biorąc pod uwagę liczbę wyników wyszukiwania wskazujących na FSearch, gdy korzystasz z Google dla Evernote jako alternatywy dla Linuksa, jestem zaskoczony, że jesteś jedynym, który opublikował go tutaj.
— Ghos3t,

1

Powinno być możliwe zbudowanie czegoś takiego w kilku liniach kodu za pomocą inotify (istnieje również pakiet inotify-tools, który pozwoliłby ci to zaimplementować za pomocą skryptów powłoki).

(Byłbym bardzo zaskoczony, że każde takie narzędzie zostanie wyprowadzone z dziennika - bardziej prawdopodobne jest, że zostało zaimplementowane w warstwie wirtualnego systemu plików)


1
Nie jestem pewien, czy inotifymoże się tu przydać, ponieważ nie jest rekurencyjny. Tworzenie zegarków dla całego drzewa jest proste, ale czy jądro poradzi sobie z dziesiątkami tysięcy z nich? Nawet jeśli to możliwe, nie wygląda mi to na skuteczny sposób.
— maaartinus


1

btrfsod lat stosuje find-newpolecenie przeciw objętościom. Jeśli przechowujesz względnie aktualne drzewo migawek, można go używać do atomowego oglądania systemu plików pod kątem wszystkich zmian bez większego zamieszania.

Użyłbyś tego w następujący sposób:

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

Możesz uzyskać gen-id potrzebny do porównania z tym samym poleceniem, ale używając fałszywego gen-id. Nie ma więcej informacji tutaj .


1

Interfejs użytkownika interfejsu polecenia locate, który działa prawie tak samo jak Everything:

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


1
Wygląda na to, że opiera się na fałszywej przesłance, która locatenigdy nie jest aktualizowana automatycznie.
— roaima

Proszę się rozwijać. Co rozumiesz przez lokalizowanie aktualizacji?
— Alex Tuduran,

Twój projekt GitHub stwierdza, że komenda Unix locateużywa tej samej zasady, z tą różnicą, że baza danych nie jest aktualizowana automatycznie . locatePakiet zawiera cronzadania, które powoduje automatycznego aktualizowania bazy danych.
— roaima,

Jeśli to prawda, to pomaga tylko celowi narzędzia. Aktualizacja bazy danych automatycznie odciąża użytkownika od wykonania innego zadania. Użytkownik nadal może aktualizować bazę danych jawnie, jeśli potrzebuje natychmiastowych aktualizacji. A co jest powodem do niepokoju odnośnie fałszywej przesłanki?
— Alex Tuduran

1

Korzystam z Angry Search na Raspberry Pi 3 B + z systemem Stretch i działa dobrze. Jest naprawdę dość szybki, podobnie jak w Search Everything w systemie Windows. Bardzo miło jest móc tak szybko znajdować pliki.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.