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.