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?

maaartinus
źródło
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)

student
źródło
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!

Charles
źródło
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.

Tatjana Heuser
źródło
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

Możesz użyć locatepolecenia, a jeśli chcesz zaktualizować jego bazę danych, uruchom następujące polecenie:

# updatedb

To polecenie aktualizuje lokalizację bazy danych za kilka sekund

RobotMan
źródło
interaktywna przykładowa implementacja: github.com/phil294/linux-locate-everything
phil294
2

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

Blue Ray
źródło
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)

symcbean
źródło
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 .

mikeserv
źródło
1

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

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

Alex Tuduran
źródło
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.

Lulu
źródło