Maneres d'utilitzar l'ordre find per cercar directoris de manera més eficient


Aquest tutorial us portarà a través de les diferents maneres de trobar un directori a Linux. Com ja sabeu, en la recerca d'un fitxer o un directori.

Hi ha diversos mitjans i utilitats que s'utilitzen per cercar fitxers a la línia d'ordres, com ara trobar, localitzar i quins. Tanmateix, l'última utilitat (que) només s'utilitza per localitzar una ordre.

Per a l'abast d'aquest tutorial, ens centrarem principalment en la utilitat de cerca, que cerca fitxers en un sistema de fitxers Linux en directe i és més eficient i fiable en comparació amb la localització.

L'inconvenient de locate és que llegeix una o més bases de dades creades per updatedb, no cerca a través d'un sistema de fitxers en directe. A més, no ofereix flexibilitat quant a on cercar (punt de partida).

A continuació es mostra la sintaxi per executar l'ordre locate:

# locate [option] [search-pattern]

Per demostrar el desavantatge de localitzar, suposem que estem cercant un directori anomenat pkg al directori de treball actual.

Nota: A l'ordre següent, l'opció --basename o -b diu a locate que només coincideixi amb el nom base del fitxer (directori) (que és exactament pkg), però no amb el camí. (/camí/a/pkg). On \ és un caràcter globbing, desactiva la substitució implícita de pkg per *pkg*.

$ locate --basename '\pkg'

Com podeu veure a la sortida de l'ordre anterior, locate cercarà començant des del directori arrel (/), per això coincideixen altres directoris amb el mateix nom.

Per tant, per tractar aquest problema, utilitzeu find seguint la sintaxi simplificada següent:

$ find starting-point options [expression]

Vegem-ne uns quants exemples.

Per cercar el mateix directori (pkg) anterior, dins del directori de treball actual, executeu l'ordre següent, on el senyalador -name llegeix l'expressió que en aquest cas és la nom base del directori.

$ find . -name "pkg"

Si trobeu errors de \Permís denegat, utilitzeu l'ordre sudo així:

$ sudo find . -name "pkg"

Podeu evitar que find cerqui altres tipus de fitxers, excepte directoris, utilitzant el senyalador -type per especificar el tipus de fitxer (a l'ordre de sota d significa directori) de la següent manera:

$ sudo find . -type d -name "pkg"

A més, si voleu llistar el directori en un format de llista llarg, feu servir el commutador d'acció -ls:

$ sudo find . -type d -name "pkg" -ls

A continuació, l'opció -iname habilitarà una cerca que no distingeix entre majúscules i minúscules:

$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 

Per trobar informació d'ús més interessant i avançada, llegiu les pàgines de manual de find and locate.

$ man find
$ man locate

Com a darrera observació, l'ordre find és més fiable i eficient per cercar fitxers (o directoris) en un sistema Linux quan es compara amb l'ordre locate.

De la mateixa manera que abans, no oblideu enviar-nos els vostres comentaris o preguntes a través de la secció de comentaris a continuació. Per últim, romandre sempre connectat a Tecmint.