Usare la shell per cercare i file
L’avvento delle interfacce grafiche (gnome, kde…) ha sicuramente ridotto l’uso della shell, l’interfaccia per eccellenza ancorchè a riga di comando. Tuttavia, a mio parere, niente è paragonabile alla bash per potenza e flessibilità, per cui quando si cercano queste caratteristiche ricorrervi è naturale. Se, per esempio, dobbiamo cercare dei file possiamo avvalerci degli strumenti integrati in gnome o kde (tracker, strigi…) oppure usare Il comando locate, il quale è appunto preposto alla ricerca di un file generico sul filesystem. Il vantaggio di questo comando rispetto ad altri più o meno deputati agli stessi compiti è la velocità, esso infatti effettua la sua ricerca su un piccolo database e non scansionando integralmente il disco; è chiaro però che troverà solo i file presenti nel database, e, anche se quest’ ultimo in genere viene aggiornato (da cron) una volta al giorno (col comando updatedb) questo può essere un limite. Comunque ecco la sintassi
:
- updatedb (senza argomenti leggerà da \ per tutta la struttura del filesystem e farà l’ update del database che in una distro debian, ad esempio, è in /var/cache/locate/locatedb);
- locate locate -m (in questo caso cercherà tutti file del manuale con locate nel nome *).
Le opzioni sono -b, -m, -s e servono per restringere le ricerche a binari, pagine di manuale o sorgenti.
*Ecco l’output della mia shell:
/etc/alternatives/locate
/etc/alternatives/locate.1.gz
/etc/cron.daily/mlocate
/usr/bin/locate
/usr/bin/mlocate
/usr/bin/updatedb.mlocate
/usr/include/krb5/locate_plugin.h
/usr/share/doc/mlocate
/usr/share/doc/mlocate/AUTHORS
/usr/share/doc/mlocate/NEWS.gz
/usr/share/doc/mlocate/README
/usr/share/doc/mlocate/TODO.Debian
/usr/share/doc/mlocate/changelog.Debian.gz
/usr/share/doc/mlocate/changelog.gz
/usr/share/doc/mlocate/copyright
/usr/share/locale-langpack/it/LC_MESSAGES/mlocate.mo
/usr/share/man/man1/locate.1.gz
/usr/share/man/man1/mlocate.1.gz
/usr/share/man/man3/XdbeAllocateBackBufferName.3.gz
/usr/share/man/man3/XdbeDeallocateBackBufferName.3.gz
/usr/share/man/man3/XtAllocateGC.3.gz
/usr/share/man/man5/mlocate.db.5.gz
/usr/share/snmp/mib2c-data/generic-data-allocate.m2i
/var/lib/mlocate
/var/lib/dpkg/alternatives/locate
/var/lib/dpkg/info/mlocate.conffiles
/var/lib/dpkg/info/mlocate.list
/var/lib/dpkg/info/mlocate.md5sums
/var/lib/dpkg/info/mlocate.postinst
/var/lib/dpkg/info/mlocate.postrm
/var/lib/dpkg/info/mlocate.prerm
/var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db.hhctQ1
Post correlati...
Compilazione di VMWare-tools su Ubuntu Hardy by Mad on July 23rd, 2008
Dopo aver installato VMWare server su Ubuntu 8.
Linux su Nintendo Wii... by Mad on April 12th, 2008
La notizia è vecchia di circa un mese ma vale assolutamente la pena di raccontarla.
Phoronix test suite by Mad on April 7th, 2008
Qualche giorno fa, esattamente il 2 Aprile, .
Ubuntu Netbook Remix 9.04 su EeePc 900 by Mad on May 1st, 2009
Alla fine non ce l'ho fatta ad aspettare Easy Peasy ed, esattamente alle 22:00 di Giovedì 30 Aprile, ho avviato la procedura d'installazione di Ubuntu Netbook Remix 9.
Settare il DNS da linea di comando. by Mad on December 30th, 2007
Bisogna editare il file /etc/resolv.
Se questo sito è di tuo gradimento abbonati gratuitamente sottoscrivendo il Feed RSS. Grazie per la visita!















22 giugno 2008 alle 2:51 pm
ciao! giusto una piccola precisazione… secondo te non può essere confusionario usare il termine “Bash” come sinonimo universale di shell, quando invece alcune distro (tipo Ubuntu) sono passate a Dash?
scusa la noiosa puntualizzazione, bel sito BTW!!!