Esiste un motore di ricerca di file come "Tutto" in Linux?


46

Su Windows c'è un bel motore di ricerca di file chiamato Tutto , che è (a differenza find) molto veloce e (a differenza locate) restituisce sempre risultati aggiornati. AFAIK funziona compilando un database dal diario NTFS (non funziona con altri filesystem).

Mi chiedo se ci sia qualcosa di simile (non mi interessa la GUI; il mio punto è la velocità e la garanzia aggiornata) per Linux (ext3 o ext4); Ho cercato su Google ma non ho trovato nulla. Si può fare qualcosa del genere o ci sta lavorando qualcuno?


2
La cosa che mi piace di tutto è che non solo è istantaneo, ma funziona anche per più partizioni, come i sistemi multiboot con sei installazioni di Windows più diverse partizioni di dati. Mi piacerebbe avere una ricerca Linux che funzionerà su più partizioni Linux, non solo sulla singola partizione.
Arch Parsons,

Esistono molte varianti di individuare (mlocate, slocate, rlocate, ....) con caratteristiche proprie lì (aggiornamento incrementale b, indicizzazione in tempo reale o sicuro, ...). Tutti sono altamente configurabili (manpage di updatedb.conf e individuare)
Manu H

Risposte:


30

Puoi dare un'occhiata a Rlocate , una reimplementazione di Locate sempre aggiornata. Un altro progetto interessante è il richiamo che supporta anche l' indicizzazione in tempo reale e consente all'utente (come beagle) di effettuare ricerche full-text. Infine, dovrei menzionare doodle che supporta anche l'indicizzazione in tempo reale. Per il doodle ci sono dei bei frontend come il pesce gatto .

Nota che puoi anche rendere (r) localizzare i risultati cliccabili usando ad esempio urxvt come emulatore di terminale e scrivendo qualcosa di simile

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

(e xrdb -load ~/.Xdefaultsdopo l' esecuzione )


1
Penso che questa risposta dovrebbe essere accettata. rlocatestesso fa già una risposta completa.
phunehehe,

4
Che succede nel 2017? rlocate menziona Linux 2.6 e nessun pacchetto Ubuntu 16.04. il richiamo sembra interessante e aggiornato, anche se eccessivo per le mie necessità. doodle ha il pacchetto Ubuntu a partire dal 16.04, quindi potrebbe essere un'opzione.
Stéphane Gourichon,

Perché il richiamo è eccessivo, è anche possibile eseguire il richiamo dalla riga di comando. Si integra bene anche con kde e unità se lo desideri.
studente

Il mio problema più grande con il pesce gatto è l'incapacità di interagire con i file - se voglio copiare 20 file dai risultati della ricerca, devo Show in File Manager20 volte.
Annan,

La documentazione di rlocate ha un elenco di requisiti di "configurazione del kernel" che non so come soddisfare, e se lo annullo ed eseguo ./configuremi viene detto che devo "installare il pacchetto con i sorgenti del kernel completo". Questo strumento sembra essere fuori portata per i non guru.
Qwertie,

7

Stavo anche cercando lo strumento "Cerca tutto" per Linux e ho scoperto "Cerca scimmia" nel repository Ubuntu. LO ADORO!

È leggero, carica rapidamente, le ricerche con caratteri jolly producono all'istante tonnellate di risultati, oltre a filtri e metodi di ricerca avanzati.

Ora ho il mio strumento di ricerca "Tutto" per Linux!


Il collegamento è interrotto
Chris Nevill l'

4

Un'idea interessante per implementare questo radicato nel filesystem, ma nulla di simile esiste per quanto ne sappia. A parte alcuni componenti aggiuntivi che cercano di scavare abbastanza in profondità nei livelli fs superiori per ottenere una presa anticipata dei dati (Aggiornamento: tutto rientra in questa stessa categoria), temo che tu sia limitato ai processi meno soddisfacenti di indicizzazione regolare.

Ciò che potrebbe avvicinarsi di più a quello che stai cercando potrebbe essere il filesystem virtuale libferris.

Nel mondo dell'indicizzazione, potresti dare un'occhiata a glimpse , che almeno è in grado di aggiornare e aggiungere il suo indice.

Aggiornamento: ho appena letto le cose su "Tutto", e non sembra neanche inerente a FS, quindi libferris non è poi così lontano, inoltre permette anche di indicizzare il contenuto, non solo i nomi dei file. Soddisfa la tua necessità di essere sempre aggiornato.


La mailing list di Ferris si è prosciugata dal 2007 e non proseguirà oltre il 2010. Esiste un repository github che non era attivo tra mi-2016 e marzo 2017 github.com/monkeyiq/ferris/commits/master . Forse continua.
Stéphane Gourichon,


2

Hai controllato Ricerca arrabbiata . Afferma nella sua descrizione che è proprio come tutto. Anche FSearch rivendica lo stesso.


1
Considerando quanti risultati di ricerca ottieni puntando a FSearch quando cerchi Google per Evernote in alternativa a Linux, sono sorpreso che tu sia l'unico a averlo pubblicato qui.
Ghos3t

1

Dovrebbe essere possibile creare qualcosa del genere in poche righe di codice usando inotify (c'è anche il pacchetto inotify-tools che ti permetterebbe di implementarlo usando script di shell).

(Sarei molto sorpreso che tale strumento sarebbe guidato dal diario - molto probabilmente è implementato nel livello del filesystem virtuale)


1
Non sono sicuro se inotifypotrebbe essere utile qui in quanto non ricorsivo. Creare orologi per l'intero albero è semplice, ma il kernel può gestirne molte decine di migliaia? Anche se può, questo non sembra un modo efficace per me.
maaartinus,


1

btrfsha implementato il find-newcomando contro sottovolumi per anni. Se mantieni un albero di istantanee relativamente aggiornato, può essere usato per guardare atomicamente un filesystem per tutte le modifiche con poca confusione.

Lo useresti come:

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

È possibile ottenere l'id gen necessario per il confronto con lo stesso comando, ma utilizzando un gen-id falso. Ci sono maggiori informazioni qui .


1

Front-end dell'interfaccia utente per il comando di individuazione che funziona quasi come tutto:

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


1
Questo sembra essere basato su una premessa errata che locatenon viene mai aggiornata automaticamente.
roaima,

Si prega di sviluppare. Cosa intendi per localizzare in fase di aggiornamento?
Alex Tuduran,

Il progetto GitHub afferma che il comando Unix locateutilizza lo stesso principio, tranne per il fatto che il database non viene aggiornato automaticamente . Il locatepacchetto include cronun'attività che aggiorna automaticamente il database.
roaima,

Se questo è vero, aiuta solo l'obiettivo dello strumento. Avere il database aggiornato automaticamente scarica l'utente dal fare un'altra attività. L'utente può comunque aggiornare esplicitamente il database se necessita di aggiornamenti immediati. O qual è la preoccupazione qui riguardo alla falsa premessa?
Alex Tuduran,

1

Sto usando Angry Search su un Raspberry Pi 3 B + con Stretch e funziona benissimo. È davvero abbastanza veloce, proprio come Cerca tutto su Windows. È molto bello poter trovare i file così rapidamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.