Introducció
on es
localitzar
quin
tipus
trobar
Introducció
Hi ha cinc comandaments de cerca d'arxius en Linux: whereis, locate, which, type, i find. Cadascun d'ells té les seves pròpies característiques i està dissenyat per a escenaris de cerca particulars. Aquesta guia us presentarà cada comanda i mostrarà exemples d'ús. Per a més informació sobre qualsevol d'aquestes ordres, el millor és revisar la pàgina de manual adequada.
whereis
L' whereisordre s'utilitza per cercar fitxers binaris, codi font i pàgines de manual en línia en diversos directoris d'instal·lació estàndard per a qualsevol nom de programa especificat.
Com whereisque no cerca totes les ubicacions del vostre sistema, no es trobarà cap fitxer d'aquests directoris específics. Per la mateixa raó, obtindreu ràpidament el resultat de la cerca, tant si es troba com si no.
A més, no cercarà aquelles ordres integrades directament a l'intèrpret d'ordres.
Per exemple, si voleu trobar informació sobre l' lsordre, executeu l'ordre següent al vostre terminal:
whereis ls
Rebràs alguns comentaris com:
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
Com a resultat, /bin/lsés el binari que voleu localitzar, les altres dues són pàgines de manual del lsprograma, no lss'ha trobat cap codi font del programa.
Copieu el /bin/lsfitxer al vostre directori d'inici i al /usr/bindirectori i, a continuació, torneu a executar l' whereisordre:
cp /bin/ls ~
cp /bin/ls /usr/bin/ls
whereis ls
Com veieu, només /bin/lsi es /usr/bin/lsvan trobar al resultat de la cerca. El lsno es va trobar el programa en el seu directori personal, per la seva directori principal no és un dels directoris d'instal·lació estàndard.
ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
Si executeu l'ordre següent:
whereis cd
Veureu una sortida semblant a la línia següent. No s'ha descobert cap fitxer binari perquè cdés una ordre integrada de l'intèrpret d'ordres.
cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
locate
L' locateordre s'utilitza per trobar fitxers per nom amb l'ajuda d'una base de dades ( /var/lib/mlocate/mlocate.db). Aquesta base de dades és bàsicament una instantània de la disposició del vostre sistema de fitxers. Qualsevol registre d'aquesta base de dades que coincideixi amb la vostra consulta apareixerà al resultat de la cerca. Per defecte, l' locateordre utilitzarà la vostra consulta per fer coincidir qualsevol part del nom complet de cada registre, inclòs el nom del camí. Per tant, el nombre de fitxers coincidents al resultat de la cerca podria ser més del que esperàveu.
A mesura que la base de dades queda obsoleta, el resultat de la cerca de l' locateordre es torna menys precís. És possible que observeu fitxers que ja no existeixen o que no vegeu coincidències amb els fitxers creats recentment. Per defecte, la mlocate.dbbase de dades s'actualitza automàticament un cop al dia. Podeu utilitzar l' updatedbordre per actualitzar-lo manualment.
Com que la cerca es realitza a la base de dades en lloc del sistema de fitxers, la velocitat de cerca és molt ràpida.
Si executeu l'ordre següent:
locate ls
Obtindreu molts registres en lloc del resultat esperat.
Per tal que el resultat de la cerca sigui més precís, podeu utilitzar la -bmarca per restringir l'interval de cerca, utilitzant la vostra consulta perquè coincideixi només amb el nom base de cada registre:
locate -b "\ls"
Aquesta vegada, obtindreu la ubicació de cada fitxer cridat exactament lsal vostre sistema de fitxers:
/bin/ls
which
L' whichordre cercarà l'ordre que heu especificat al valor de la variable d'entorn PATHi retornarà el primer resultat per defecte. Si esteu consultant un àlies, l' whichordre determinarà l'ordre real de l'àlies abans de realitzar la cerca.
La whichcomanda també és molt ràpida per la seva senzillesa.
L'ús de l' whichordre és senzill:
which your_command
Si voleu mostrar totes les ordres coincidents en lloc de la primera, utilitzeu el -asenyalador:
which -a your_command
Aquí hi ha un exemple per cercar una ordre amb un àlies:
which ll
El resultat de la cerca seria:
alias ll='ls -l --color=auto'
/bin/ls
type
Per defecte, l' typeordre indicarà com s'interpretaria un nom d'ordre. Els resultats possibles inclouen un àlies, una paraula clau, una funció, un fitxer integrat o un fitxer. Igual que l' whereisordre, l' typeordre només cercarà en diversos directoris d'instal·lació estàndard per respondre a la vostra consulta.
Alguns exemples per escriure diferents ordres:
Una ordre integrada de l'intèrpret d'ordres:
type cd
cd is a shell builtin
Un fitxer binari al sistema de fitxers:
type sudo
sudo is /usr/bin/sudo
Un àlies:
type ls
ls is aliased to `ls --color=auto'
find
Entre les cinc ordres de cerca de fitxers introduïdes en aquest tutorial, l' findordre és la més potent. També és el més lent. A diferència de les altres quatre ordres, l' findordre buscarà el vostre fitxer a tot el sistema de fitxers, un i-node per un i-node. Amb l' findordre, podeu utilitzar criteris de consulta sofisticats per trobar tots els fitxers que necessiteu, fins i tot executar accions addicionals als fitxers que s'han trobat.
Els criteris de cerca de l' findordre són massa sofisticats per explicar-los en un article tan breu, aquí hi ha alguns exemples.
Format bàsic de l' findordre:
find [path] [option] [action]
Per trobar tots els fitxers del directori de treball i tots els seus subdirectoris:
find
Per trobar un fitxer anomenat aaaal vostre directori personal i tots els seus subdirectoris:
find ~ -name 'aaa'
Per trobar tots els fitxers del sistema de fitxers que s'han modificat en les últimes 24 hores:
find / -mtime 0
Per trobar tots els fitxers del directori web i tots els seus subdirectoris que pertanyen a l'usuari nginx:
find /usr/share/nginx/html/ -user nginx
Per trobar tots els fitxers del directori de treball els permisos dels quals són 0744:
find -perm -0744
Per trobar un fitxer amb el nom aaaal directori de treball i llistar la seva informació detallada:
find -name 'aaa' -exec ls -l {} \;