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.