Appunti su Gentoo Linux

Effettuare ricerche in Linux

Una breve panoramica

Effettuare ricerche di file in un sistema Linux non è mai stata operazione banale... Tra gli strumenti a disposizione c'è il classico comando find che non fa nient'altro che scorrere tutte le directory da voi indicate cercando nel nome del file la stringa specificata.

Uno strumento più potente è locate e le sue versioni alternative (o complementari) slocate, rlocate, mlocate.
Cercando un file con locate la ricerca avverrà molto più velocemente dato che non verranno letti tutti i file, bensì un unico file, un database, un indice di tutti i file del sistema. L'inconveniente è ovviamente che questo database va rigenerato abbastanza frequentemente altrimenti non rappresenta più l'attuale situazione del PC.

Esistono poi altri tool, primo fra tutti Beagle, molto potente e versatile, che si basano anch'essi su dei database, aggiornati però in tempo reale e che permettono di cercare file anche in base al loro contenuto. Il problema è che, nonostante si abbia una potenza di ricerca enormemente più semplice e ampia, l'impatto sulle risorse di sistema non è trascurabile, soprattutto su un sistema datato.

Per questi strumenti esistono poi numerose interfacce grafiche (basta una ricerca su Google). Beagle ne ha anche una di default, che viene installata insieme al programma stesso.

La mia scelta: mlocate + CatFish

Dopo varie ricerche e prove ho concluso che, a parer mio, la miglior accoppiata è mlocate con l'interfaccia CatFish.

Ecco come installare e configurare il tutto su Gentoo. Prima partiamo da mlocate:

emerge mlocate
updatedb (è il comando per generare o rinnovare il database)

Per fare le ricerche da riga di comando usando mlocate si usa il comando locate (vedere la sua pagina man per imparare la sintassi).
Consiglio vivamente di aggiungere al cron di sistema una riga che aggiorni (comando updatedb) quotidiamente il database.

Ora veniamo all'interfaccia grafica. CatFish è un interfaccia che può adattarsi a numerosi strumenti di ricerca, non solo ad mlocate, ma anche al classico find, a Beagle, ecc...
Per installarlo basta eseguire

emerge catfish

Conviene integrare il vostro file manager, nel mio caso Thunar, con lo strumento di ricerca, in questo caso CatFish.
In Thunar andare su Edit/Configure Custom Actions.../Add a new custom action
Scegliete nome, descrizione e icona a vostro piacimento, mentre come comando (volendo potete cambiarlo come più vi aggrada):
catfish --fileman=thunar --path=%f --hidden --method=locate
In Appearance Conditions scegliete Directories e basta. File Pattern lasciatelo al valore di asterisco *.
Ora ogni volta che cliccherete con il tasto destro su una directory, comparirà nel menù la voce di ricerca all'interno di quella cartella.

Un consiglio: per comodità conviene aggiungere una ulteriore voce al menù di sistema per le ricerche, in modo da non dover scendere nei sottomenù per eseguire CatFish.