Find

L’ordre find és molt ràpida i fàcil d’usar, ve directament des del món d’Unix i que funciona en Linux, i OS X. Si està mirant d’aprendre coses consistents a totes les plataformes, has trobat una bona opció. En la seva forma més bàsica, find pot ser utilitzat d’aquesta manera: find path parameters

Per exemple, pots buscar qualsevol cosa al directori d’inici de l’usuari que contingui “screen” al seu nom amb la següent ordre:

find ~ -name "screen*"

És possible que vulgueu pausar els resultats sobretot si esteu esperant un gran nombre de resultats, així:

find ~ -name \"screen*\" | more

Per descomptat també es pot trobar arxius específics que estan enterrats en algun lloc d’un directori. Per exemple, buscar un fitxer plist específic a la carpeta de la biblioteca d’usuaris:

find ~/Library/ -name "com.apple.syncedpreferences.plist"

Haurà d’emprar find amb el prefix sudo per buscar a directoris arrel i fora dels privilegis de l’usuari actual. find també suporta expressions, el que li permet buscar coincidències molt específiques, comodins, seqüències i altres opcions avançades. find és molt potent, però el seu poder i ràpidesa comporta certa complexitat, en conseqüència l’ordre clàssica mdfind és probablement millor per als usuaris de línia d’ordres més novells.

Mdfind

mdfind és Spotlight’s terminal interface</a>, vol dir que no funcionarà si Spotlight està desactivat</a>, no funciona per altres raons, o està reconstruïnt el seus index. Suposant que Spotlight està funcionant segons el previst, llavors, mdfind és molt ràpid, eficient, i una mica més fàcil d’utilitzar. En el seu nivell més bàsic, mdfind s’utilitza com es mostra a continuació:

mdfind -name FileName

Per exemple, per trobar totes les aparicions de “Foto 1.png” l’ordre seria:

mdfind -name "Photo 1.PNG"

Donat que mdfind és com Spotlight, també es pot utilitzar per buscar un arxiu específic dins el contingut dels arxius i carpetes . Per trobar tots els documents que continguin el nom d’algú podria fer de la següent manera:

mdfind "Will Pearson"

Igual que l’ordre find, la paginació dels resultats  pot ser útil quan s’ordenen una gran quantitat d’arxius, així:

mdfind "Sent from my" | more

mdfindtambé pot estar limitada a directoris específics amb el paràmetre -onlyin:

mdfind -onlyin ~/Library plist

Finalment, també hi ha la ordre locate, també molt potent i que pot lligar-se a però, però s’ha d’activar per separat.

Locate

L’ordre locate és molt útil si estàs buscant totes les instàncies d’un arxiu, tipus d’arxiu, aplicació, extensió, coses ocultes profundament en les carpetes del sistema, o qualsevol altra cosa que Spotlight no pot gestionar. Per utilitzar locate, necessites construir la base de dades de localització, que també facilita altres ordres útils com whatis, find, i la cerca de paraula clau al manual  ”man -k”. OS X 10.7 és millor en la construcció d’aquesta base, però si encara no has activat locate, només cal escriure aquesta ordre al terminal:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Això t’ho demanarà OS X directament la primera vegada que intentis executar locate o qualsevol de les ordres que depenen de la base de dades:

$ locate python
WARNING: The locate database (/var/db/locate.database) does not exist.
To create the database, run the following command:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
Please be aware that the database can take some time to generate; once
the database has been created, this message will no longer appear.

El temps que es necessita per generar la base de dades varia, però serà més llarg mentre més gran sigui el disc dur. Pots veure el progrés indirectament a través de Monitor d’activitat, el procés de find estarà consumint al voltant del 15 al 30% l’ús de la CPU fins que es generi la base de dades de localització.

find-process-locate

Alternativament, també pot executar la següent comanda i construir la base de dades:

sudo /usr/libexec/locate.updatedb

Igual que amb moltes ordres de terminal, locate accepta comodins i expressions regulars ajudant a optimitzar les recerques avançades. Per exemple, es pot trobar tots els arxius possibles amb una extensió .jpg utilitzant:

locate *.jpg

Alguns arxius jpg poden tenir l’extensió en majúscula, però, es pot dir a locate que ignori les majúscules i minúscules amb -i:

locate -i *.jpg

Hi ha un munt d’altres opcions que es poden treballar, vegeu man locate per obtenir més informació.